ATENÇÃO NOVOS USUÁRIOS

Se registrou recentemente? Seu cadastro será avaliado e mendiante aprovação, a conta será ativada e você poderá usufruir do fórum. O tempo de avaliação gira em torno de 24 a 48 horas.

Esqueceu sua senha?

Você pode usar o mecanismo de lembrete neste link: Recuperar senha

Você receberá um link de reativação no email cadastrado.

Não recebeu o email? Lembre-se checar o Lixo Eletrônico.

Excel vba sql Filediag

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

genebaldorios
Colaborador
Colaborador
Mensagens: 16
Registrado em: Qua Jul 19, 2017 10:59 pm

Excel vba sql Filediag

Mensagem por genebaldorios » Ter Dez 17, 2019 8:19 am

Prezados,

O código abaixo com adaptações pode ser utilizado para importação de vários arquivos txt?

Código: Selecionar todos

Sub ImportarArq()
Dim cn                  As Object
Dim Fd                  As Office.FileDialog
Dim rsTAB               As Recordset
Dim rs                  As Object
Dim Ws                  As String
Dim query               As String
Dim nTab                As Variant
Dim SelectFile          As Variant
Dim i                   As Long
Dim Caminho             As String

Set Fd = Application.FileDialog(msoFileDialogFilePicker)
With Fd
    .AllowMultiSelect = True
    .Title = "Please select the file" '
    .InitialFileName = "C:\Users\" & Environ("Username")
    '.InitialFileName = ThisWorkbook.Path & "\Arquivos" 
    .Filters.Clear
    .Filters.Add "Excel", "*.xls*"
    .Filters.Add "All Files", "*.*"
        If .Show = True Then
            'Instancia e configura o objeto cn.
            Set cn = New ADODB.Connection
           
            ' Incia um laço entre todos os arquivos selecionados.
            For i = 1 To .SelectedItems.Count
                Caminho = .SelectedItems(i)
               
                ' Abre a conexão com o Arquivo.
                With cn
                    .Provider = "Microsoft.ACE.OLEDB.12.0"
                    .Properties("Extended Properties").Value = "Excel 8.0"
                    .Open Caminho
                End With
               
                ' Instancia o Schema das Tabelas.
                Set rsTAB = cn.OpenSchema(adSchemaTables)

                ' Inicia novo laço entre as tabelas existentes no arquivo.
                Do While Not rsTAB.EOF
                    nTab = rsTAB!TABLE_NAME
                    If Not (nTab Like "MSys*" Or nTab Like "~*" Or nTab Like "sys*") Then
                        Let Ws = nTab
                        Exit Do
                    End If
                    rsTAB.MoveNext
                Loop
               
                ' Atribui comando de consulta na variável Query.
                Let query = "SELECT * FROM [" & Ws & "]"
                ' Intancia um RecordSet
                Set rs = New ADODB.Recordset
                ' Executa a consulta, envia para planilha e fecha o objeto.
                rs.Open query, cn
                Planilha6.Range("A" & Application.WorksheetFunction.CountA(Planilha6.Columns(1)) + 1).CopyFromRecordset rs
                rs.Close
                ' Fecha conexão do Objeto cn.
                cn.Close
            Next i
        Else
            Exit Sub
        End If
    End With
    ' Limpa instância do Objeto cn.
    Set cn = Nothing
End Sub



Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1414
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Excel vba sql Filediag

Mensagem por Reinaldo » Ter Dez 17, 2019 1:26 pm

Aparentemente sim,já e montado para isso:
aqui "...AllowMultiSelect = True..." permite a seleção de um ou mais arquivos no filedialog aberto

e aqui "....' Incia um laço entre todos os arquivos selecionados.
For i = 1 To .SelectedItems.Count...." seleciona e executa a rotina para cada arquivo previamente slecionado


Reinaldo
:oops: :D :mrgreen: :geek:

genebaldorios
Colaborador
Colaborador
Mensagens: 16
Registrado em: Qua Jul 19, 2017 10:59 pm

Re: Excel vba sql Filediag

Mensagem por genebaldorios » Sex Dez 20, 2019 12:28 am

Reinaldo,
Grato pela ajuda!
Editado pela última vez por genebaldorios em Dom Dez 22, 2019 7:07 pm, em um total de 1 vez.



Avatar do usuário
webmaster
Administrador
Mensagens: 2806
Registrado em: Sex Jul 24, 2009 2:44 pm
Contato:

Re: Excel vba sql Filediag

Mensagem por webmaster » Sex Dez 20, 2019 9:57 am

genebaldorios,

Outra dúvida, outro tópico. De outra forma, o fórum fica uma bagunça. Pode ser?


Tomás
https://www.tomasvasquez.com.br/blog
https://www.tomasvasquez.com.br/cursocsharp
https://twitter.com/tomamais
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder