segunda-feira, dezembro 04, 2006

Exportando para o Excel

No dia a dia das empresas, sempre é necessário gerar em planilha Excel o resultado de uma consulta no banco de dados. Utilizando o VB é possível acessar os objetos do Excel para fazer esta exportação, mas se o resultado fôr muito grande, fica lento e às vezes trava. Uma solução boa e rápida e extrair este conteúdo para o formato texto que abre normalmente no Excel. Veja o código abaixo:

Dim iFile as Integer
iFile = FreeFile


Open "C:\TEMP\ClientesExcel.TXT" For Output As iFile

sSql = "select * from clientes"
If rs.State = adStateOpen Then rs.Close

rs.Open sSql, cn

sLinha = Empty
For i = 0 To (rs.Fields.Count - 1)
sLinha = sLinha & rs.Fields(i).Name & vbTab
Next i
Print #iFile, sLinha

Do While Not rs.EOF
sLinha = Empty
For i = 0 To (rs.Fields.Count - 1)
sLinha = sLinha & rs.Fields(i) & vbTab
Next i
Print #iFile, sLinha
rs.MoveNext

Loop

Vale lembrar que se o resultado da consulta for maior que 65000 linhas é necessário quebrar em vários arquivos.