bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Exportar varias tabelas ao mesmo tempo

Exportar várias tabelas ao mesmo tempo

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Usuário Sidney:

Bom dia.

Eu tenho que exportar várias tabelas ao mesmo tempo.  Gostaria de saber como posso fazer isso, de um modo mais simplificado, ou terei que fazer códigos para cada tabela, como mostro abaixo:

DoCmd.OutputTo acOutputTable, "tab_CaracterFamiliar", _
"Excel97-Excel2003Workbook(*.xls)", "", False, "", , acExportQualityPrint

Suporte:

Sidney, você pode colocar o nome das tabelas em uma Matriz Split e o laço FOR se encarregando de realizar a repetição da exportação, com a troca do nome das tabelas.  Algo assim:

Dim k
Dim j%
k = split("NomeTabela1,NomeTabela2,NomeTabela3,NomeTabela4",",")
For j = 0 to Ubound(k)
   DoCmd.OutputTo acOutputTable, k(j) , "Excel97-Excel2003Workbook(*.xls)", _
   "", False, "", , acExportQualityPrint
Next
...

Usuário Sidney:

Avelino, deu certo! Mas gostaria de fazer as seguintes melhorias:

1- Quando der início a exportação, ele abra uma janela para eu poder escolher o local, aonde todos os arquivos serão salvos.  

2- Se por acaso houver arquivo como o mesmo nome, ele faça a substituição do mesmo.

Suporte:

Sidney, copie a função abaixo para um módulo global.  Esta função (fncLocalizarPasta) tem como objetivo selecionar uma pasta.

Public Function fncLocalizarPasta(strTitulo As String)
Dim fd As Office.FileDialog
On Error GoTo trataErro
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
.AllowMultiSelect = False
.ButtonName = "Selecionar"
.InitialFileName = "c:\"
.InitialView = msoFileDialogViewList
.Title = strTítulo
End With
If fd.Show = -1 Then
    fncLocalizarPasta = fd.SelectedItems(1)
End If
sair:
    Exit Function
trataErro:
    fncLocalizarPasta = ""
    Resume sair:
End Function

Nota:  para que esta função seja executada é necessário ativar, no VBA, a referência "MICROSOFT OFFICE XX.X OBJECT LIBRARY".  Onde xx.x você substitui pela versão do seu Office.

12.0 - Office 2007
14.0 - Office 2010
15.0 - Office 2013
16.0 - Office 2016

Utilize o código abaixo para exportar as suas tabelas.  Atente para os comentários.

Dim k
Dim j%
dim Pasta$
dim Arquivo$
'aqui será aberto a tela para selecionar a pasta de destino
Pasta = fncLocalizarPasta("Selecione a pasta de destino")
'contém as tabelas envolvidas na exportação
k = split("NomeTabela1,NomeTabela2,NomeTabela3,NomeTabela4",",")
For j = 0 to Ubound(k)
   Arquivo = pasta & "\" & k(j) & ".xls"
   WizHook.key = 51488399
   'verifica se o arquivo já existe na pasta de destino
   If wizhook.fileexists(Arquivo) then
       'arquivo já existe na pasta de destino e será deletado
       filesystem.Kill(arquivo)
   end if
   DoCmd.OutputTo acOutputTable, k(j) , "Excel97-Excel2003Workbook(*.xls)", _
   Arquivo, False, "", , acExportQualityPrint
Next

Nota: sobre o uso da coleção WizHook, neste meu artigo.

Usuário Oliveira:

Avelino, deu certinho,

obrigado mais uma vez.


 

 


Não há comentário

Envie seu comentário: