IMPORTAR EXCEL PARA SQL SERVER VIA CODIGO

USUARIO.EXCLUIDOS 09/08/2007 20:13:43
#230315
Boa Tarde

Estou com um problema, não consigo importar os dados de uma planilha Excel para o Sql Server Via Código, alguem poderia me ajudar nesse caso, não sei por onde começar.
Agradeço-lhe pela ajuda

Fausto Abrusio
JEAN.JEDSON 10/08/2007 10:33:19
#230352
Resposta escolhida
bem...
se for uma unica vez, abre o enterprise manager, chega na tabela, visualiza ela... abre o excel, seleciona os dados, control c, vai no manager, control v...

agora... se for algo rotineiro, que tem que ser tratado pelo sistema... vai fácil abrir o excel e salvar em csv, separado por tab... ai abre como arquivo texto e le linha a linha.
MJAC 12/08/2007 11:39:26
#230563
bem se for rotineiro como o jean lembrou tem que ser tratado pelo sistema, então vc pode usar por exemplo dois ADO um que conecta ao Sql Server e outro que conecta ao Excel. Vamos a um exemplo:

O componente ADODC deve ser incorporado ao formulário para isso aperte Ctrl+T no VB abrirá a caixa de Componentes marque "Microsoft ADO Data Control 6.0 (SP6)(OleDB)" e clique em OK desenhe dois objetos no formulário e utilize a propriedade ConnectionString para informar o texto de conexão respectivo abaixos:
Para o Execel:
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Origem & ";" & "Extended Properties=Excel 8.0"

obs. Origem é o path do arquivo com extensão e 'Excel 8.0' referencia a versão 2003 do office instalada. Apartir daquei cada planinha será tratada como uma tabela (porem o nome deve ser terminado pelo caracter $) e as colunas serão os campos.

Para o Sql Server:
= "Driver={SQL Server};Server=" & Server & ";Database=" & Database & ";Uid=" & User & ";Pwd=" & Password

obs. Server é o servidor Sql, Database o nome do Banco de Dados, User o usuário e Password a senha para conectar.

Depois disso:
coloque no propriedade RecordSource o nome da planilha do excel ( por exemplo se a planilha é Compras ficará Compras$ ) ou instrução Sql e realize a conexão chamando o método Refresh

coloque no propriedade RecordSource do segundo componente o nome da tabela ou instrução Sql do Sql Server e realize a conexão chamando o método Refresh

Depois disso use um loop com o primeiro componente realizando Recordset.AddNew no segundo. Atenção para saber se um Recordset possui dados ou está vazio NÃO user RecordCount e sim EOF. Abraços ...
Tópico encerrado , respostas não são mais permitidas