MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    Alteração de Especificações de Importação de TXT via VBA

    avatar
    Pereira86
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 14/02/2023

    Alteração de Especificações de Importação de TXT via VBA Empty Alteração de Especificações de Importação de TXT via VBA

    Mensagem  Pereira86 14/2/2023, 21:35

    Olá! Bom dia, boa tarde ou boa noite!

    Gostaria da ajuda de vocês.

    Estou montando um projeto de automação de importação diária de TXTs e já está bem adiantado, porém gostaria de tornar este projeto possível para quaisquer TXT, mas pra isso eu preciso alterar a especificação de forma mais dinâmica ( alterando em uma tabela ou form quando necessário ) uma outra solução que pensei, porém não sei como escrever é uma importação via VBA que seja escrita como no VBA do Excel, com todos os parâmetros escritos no próprio módulo.

    espero ter me feito entender.

    Caso interesse, abaixo o código que montei (com algumas pesquisas e com escrita própria e que já está pronto):

    Ele executa pela Function Ler:

    Código:
    Function Ler()

    Dim strCaminho As String
       With Application.FileDialog(msoFileDialogFolderPicker)
           .AllowMultiSelect = False 'Permitir mais de uma pasta
           .Show 'Mostrar janela
               If .SelectedItems.Count > 0 Then
                   strCaminho = .SelectedItems(1)
                       Else:
                           MsgBox "Nenhuma pasta selecionada, import sendo cancelado."
                           Exit Function
               End If
       End With
       
    Call ContaFicheirosExtraiNome(strCaminho, True)

    DoCmd.SetWarnings False
    'DoCmd.OpenQuery "RemovPontosHifen037", acViewNormal, acEdit
    DoCmd.SetWarnings True
    'CurrentDb.Execute "DROP TABLE TempTable", dbFailOnError

    MsgBox "ok"
    End Function

    _______________________________________

    Public Function ContaFicheirosExtraiNome(strCaminho As String, strIncluiSubPastas As Boolean)
    'Requer a seguinte referência VBA ativa: Microsoft Scripting Runtime - Para chamar a função, deve colocar no pressionar de um botão: Call ContaFicheirosExtraiNome("C:\SuaPasta\",True)
    Dim fso As Object, strPasta As Object, strSubPasta As Object, strFicheiro As Object
    Dim strConta As Long, strSQL As String
       
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set strPasta = fso.GetFolder(strCaminho)
       
       For Each strFicheiro In strPasta.Files 'Percorre a drive e extraí o nome das pastas, subPastas e ficheiros
           
               If Mid([strFicheiro], InStrRev([strFicheiro], "\") + 1) Like "*.txt*" Then 'Insere na tabela o caminho completo dos ficheiros com as extensões TXT
                   
                   ArquivoCaminhoUsa = strPasta.Path & "\" & strFicheiro.name
                   
                   FileCopy ArquivoCaminhoUsa, CurrentProject.Path & "\TEMP" & ".txt"
                   DoCmd.TransferText acImportDelim, "ImportValoresHC", "TempTable", CurrentProject.Path & "\TEMP" & ".txt"
                   Kill CurrentProject.Path & "\TEMP" & ".txt"
                                                 
                   strConta = strConta + 1
                   Else
               End If
               
       Next strFicheiro
       
       
       If strIncluiSubPastas = True Then 'Se existirem subpastas, insere na tabela o caminho completo dos ficheiros
           For Each strSubPasta In strPasta.SubFolders
               ContaFicheirosExtraiNome strSubPasta.Path, True
           Next strSubPasta
       End If
       
       Set strFicheiro = Nothing
       Set strPasta = Nothing
       
    End Function
    avatar
    Pereira86
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 14/02/2023

    Alteração de Especificações de Importação de TXT via VBA Empty Alguém para dar essa Moral?

    Mensagem  Pereira86 15/3/2023, 22:50

    Alguém tem essa informação, se é possível ou não?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7936
    Registrado : 15/03/2013

    Alteração de Especificações de Importação de TXT via VBA Empty Re: Alteração de Especificações de Importação de TXT via VBA

    Mensagem  Alvaro Teixeira 16/3/2023, 09:12

    Olá Glauco Pereira,
    Seja Bem-vindo ao fórum.

    Relativamente à questão, tente verificar com um editor de texto (pode ser notepad++) se encontra alguma diferênça (codificação, formato, quebras, etc)
    Caso não encontre, o melhor será disponibilizar base de dados funcional com a parte envolvida para se testar e ficheiro correto.

    Abraço

    Conteúdo patrocinado


    Alteração de Especificações de Importação de TXT via VBA Empty Re: Alteração de Especificações de Importação de TXT via VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 15/7/2024, 15:53