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:
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