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

    Importação de CSV - Um Grande Misterio

    avatar
    Eneas
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 04/01/2012

    Importação de CSV  - Um Grande Misterio Empty Importação de CSV - Um Grande Misterio

    Mensagem  Eneas 10/3/2023, 23:08

    Olá pessoal.
    Venho compartilhar um problema que estou tendo que é um verdadeiro mistério.

    Peguei aqui no fórum um código para importação de dados TXT e adaptei para meu uso, porém minha importação é feita de um arquivo CSV.
    Testei e tudo bem, quando foi para baixar um arquivo original CSV, não importou, fiquei intrigado... Fiz novamente a importação com o arquivo de teste e deu certo. Resolvi copiar os dados do arquivo original para dentro do arquivo teste e importei, para minha surpresa deu certo. Aí que percebi uma coisa, quando eu pego o arquivo original, abro-o no Excel, faço uma alteração boba (barra de espaço para pedir para salvar) e salvo com o mesmo formato (CSV), ao importar dá certo...

    Achei isso um tanto quanto estranho e venho pedir ajuda para tentar contornar esse problema para não precisar ficar fazendo essa "gambiarra" no excel.

    Alguém pode me ajudar?

    Segue abaixo o código:

    Código:


    Private Sub BtImpCadMix_Click()

    Dim db As Database
    Dim rs As Recordset
    Dim linha$
    Dim anArray
    Dim codigoFilial As String
    Dim caminhoArquivoCSV As String
    Dim NomeTabela As String

    NomeTabela = "CAD_MIX"
        
        'Pedir ao usuário o código da filial
        codigoFilial = InputBox("Digite o código da filial:")
        
        'Abrir diálogo para escolher arquivo CSV
        With Application.FileDialog(msoFileDialogFilePicker)
            .Title = "Selecione o arquivo CSV para importar"
            .Filters.Add "Arquivos CSV", "*.csv"
            If .Show = -1 Then 'Se o usuário escolheu um arquivo
                caminhoArquivoCSV = .SelectedItems(1)
            Else 'Se o usuário cancelou a operação
                Exit Sub
            End If
        End With
        
      ' Exclui todos os dados da tabela existente
        CurrentDb.Execute "DELETE FROM " & NomeTabela

    Open caminhoArquivoCSV For Input As #1
    Set db = DBEngine.Workspaces(0).Databases(0)
    Set rs = db.OpenRecordset(NomeTabela)

    Line Input #1, linha

    If Len(linha) > 0 Then
    Do While Not EOF(1)

    Line Input #1, linha

    anArray = Split(linha, ";")
        rs.AddNew
        rs(0) = codigoFilial
        rs(1) = Trim(anArray(0))
        rs(2) = Trim(anArray(1))
        rs(3) = Trim(anArray(2))
        rs(4) = Trim(anArray(3))
        rs(5) = Trim(anArray(4))
        rs(6) = Trim(anArray(5))
        rs(7) = Trim(anArray(6))
        rs(8) = Trim(anArray(7))
        rs(9) = Trim(anArray(8))
        rs(10) = Trim(anArray(9))
        rs(11) = Trim(anArray(10))
        rs(12) = Trim(anArray(11))
        rs(13) = Trim(anArray(12))
        rs(14) = Trim(anArray(13))
        rs(15) = Trim(anArray(14))
        rs(16) = Trim(anArray(15))
        rs(17) = Trim(anArray(16))
        rs(18) = Trim(anArray(17))
        rs(19) = Trim(anArray(18))
        rs(20) = Trim(anArray(19))
        rs(21) = Trim(anArray(20))
        rs(22) = Trim(anArray(21))
        rs(23) = Trim(anArray(22))
        rs(24) = Trim(anArray(23))
        rs(25) = Trim(anArray(24))
        rs(26) = Trim(anArray(25))
        rs(27) = Trim(anArray(26))
        rs(28) = Trim(anArray(27))
        rs(29) = Trim(anArray(28))
        rs(30) = Trim(anArray(29))
        rs(31) = Trim(anArray(30))
        rs(32) = Trim(anArray(31))
        rs(33) = Trim(anArray(32))
        rs(34) = Trim(anArray(33))
        rs(35) = Trim(anArray(34))
        rs(36) = Trim(anArray(35))
        rs(37) = Trim(anArray(36))
        rs(38) = Trim(anArray(37))
        rs(39) = Trim(anArray(38))
        rs(40) = Trim(anArray(39))
        rs(41) = Trim(anArray(40))
        rs(42) = Trim(anArray(41))
        rs(43) = Trim(anArray(42))
        rs(44) = Trim(anArray(43))
        rs(45) = Trim(anArray(44))
        rs(46) = Trim(anArray(45))
        rs(47) = Trim(anArray(46))
        rs(48) = Trim(anArray(47))
        rs(49) = Trim(anArray(48))
        rs(50) = Trim(anArray(49))
        rs(51) = Trim(anArray(50))
        rs(52) = Trim(anArray(51))
        rs(53) = Trim(anArray(52))
        rs(54) = Trim(anArray(53))
        rs(55) = Trim(anArray(54))
        rs(56) = Trim(anArray(55))
        rs(57) = Trim(anArray(56))
        rs(58) = Trim(anArray(57))
        rs(59) = Trim(anArray(58))
        rs(60) = Trim(anArray(59))
        rs(61) = Trim(anArray(60))
        rs(62) = Trim(anArray(61))
        rs(63) = Trim(anArray(62))
        rs(64) = Trim(anArray(63))
        rs(65) = Trim(anArray(64))
        rs(66) = Trim(anArray(65))
        rs(67) = Trim(anArray(66))
        rs(68) = Trim(anArray(67))
        rs(69) = Trim(anArray(68))
        rs(70) = Trim(anArray(69))
        rs(71) = Trim(anArray(70))
        rs(72) = Trim(anArray(71))
        rs(73) = Trim(anArray(72))
        rs(74) = Trim(anArray(73))
        rs(75) = Trim(anArray(74))
        rs(76) = Trim(anArray(75))
        rs(77) = Trim(anArray(76))
        rs(78) = Trim(anArray(77))
        rs(79) = Trim(anArray(78))
        
        rs.Update
    Loop

    MsgBox "Importação Concluída com Sucesso!!"
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

    Close #1

    Else
    rs.Close: Set rs = Nothing
    db.Close: Set db = Nothing

    Close #1
    End If

    End Sub

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Importação de CSV  - Um Grande Misterio Empty Re: Importação de CSV - Um Grande Misterio

    Mensagem  Alvaro Teixeira 15/3/2023, 09:28

    Olá Akin,

    Tente abrir com um editor de texto (pode ser notepad++) os CSV e comparar onde pode estar a diferença (codificação, quebra de linha, etc)
    Se não conseguir identificar o ideal será disponibilizar o ficheiro que dá erro a importar e a base de dados com a parte envolvida para se testar.

    Abraço

    Eneas gosta desta mensagem


      Data/hora atual: 22/2/2024, 11:28