Exportação de MS Access tabelas através de VBA para uma planilha do Excel no mesmo diretório

StackOverflow https://stackoverflow.com/questions/1849580

Pergunta

Eu tenho duas tabelas no meu banco de dados de acesso que eu quero ser capaz de exportar para excel .

Eu posso fazê-lo abrindo a mesa e, em seguida, fazendo File-> Export ... e, em seguida, escolher o formato e digitar o nome do arquivo.

No entanto, desta forma o usuário realmente tem que digitar o nome em que haja espaço para misnaming o arquivo ou para salvá-lo como formato errado ou no local errado. Além disso, as duas tabelas têm de ser exportados para duas pastas de trabalho separadas.

O que eu quero ser capaz de fazer é fazer uma botão em um formulário que exporta automaticamente uma tabela para uma planilha e outra para outra planilha , tanto no mesma pasta de trabalho excel .

Se colocá-los no mesmo livro não é possível, isso é bom. Eu só quero que eles automaticamente exportados para o mesmo diretório meu banco de dados de acesso é guardado em.

Se você sabe como fazê-lo, uma comodidade adicional poderia ser a de personalizar o nome para incluir a data. Dessa forma, o diretório teria exportações histórica também. Algum conselho?

Foi útil?

Solução

Você pode usar VBA para exportar uma tabela de banco de dados Access como uma planilha em uma pasta de trabalho Excel.

Para obter o caminho do banco de dados Access, use a propriedade CurrentProject.Path.

Para nomear o arquivo de livro do Excel com a data atual, use o método Format(Date, "yyyyMMdd").

Finalmente, para exportar a tabela como uma planilha, use o método DoCmd.TransferSpreadsheet.

Exemplo:

Dim outputFileName As String
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", outputFileName , True
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table2", outputFileName , True

A saída será tanto Table1 e Table2 na mesma pasta de trabalho.

HTH

Outras dicas

Lawrence lhe deu uma boa resposta. Mas se você quiser mais controle sobre o que é exportado para onde em Excel consulte Módulos: Sample Automation Excel - célula por célula, que é lento e Módulos: Transferência de registros para o Excel com a automação Você pode fazer coisas tais como a exportação de registros começando na linha 2 e inserção de texto personalizado na linha 1. assim como qualquer personalizado formatação exigida.

Para as pessoas que acham isso através de motores de busca, você não precisa de VBA. Você pode apenas:

1.) select the query or table with your mouse
2.) click export data from the ribbon
3.) click excel from the export subgroup
4.) follow the wizard to select the output file and location.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top