IMPORTAR EXCEL PARA SQL SERVER VIA CODIGO
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
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
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.
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.
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 ...
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