Uso essa rotina para exportar dados de uma tabela access para o excel:
Public Sub GerarExcel()
On Error GoTo final
sPath = App.Path & "ImportaTexto.mdb"
sPath2 = PathExcel & "]." & Arquivo.xls"
Set db = Workspaces(0).OpenDatabase(sPath)
'Envia os dados para o novo arquivo
db.Execute "Select * into [Excel 4.0; DATABASE=" & sPath2 & " FROM [tblAgregado]"
MsgBox "O arquivo .xls foi gerado no diretório: " & PathExcel, vbExclamation, "Arquivo exportado com sucesso!!!"
Exit Sub
final:
Exit Sub
End Sub
PROBLEMA: Não consigo atualizar o driver do excel de 4.0 para outro superior, como, por exemplo, o excel 9.0 (só funciona com o excel 4.0. Já tentei assim:
db.Execute "Select * into [Excel 9.0; DATABASE=" & sPath2 & " FROM [tblAgregado]"
Mas dá erro de sintaxe. Alguém sabe como resolver isso?
Também tentei usar o objeto do excel (o meu excel é o 2003); o problema é que, ao exportar para o excel utilizando o objeto, a planilha formata, indevidamente, os valores texto como números
(exemplo: valor original no access: "0.090.07" => depois de ir para o excel vica assim: 0,09).
A única rotina que exporta sem a formatação indevida é a primeira (exporta tudo como texto), por isso, tenho interesse em mantê-la.
Desde já agradeco qualquer ajuda,