Pessoal estou tendo problemas na importação do meu arquivo .csv preciso inserir na minha macro o código que faz com que seja utilizado o Qualificador de texto = " (aspas duplas) e o
Símbolo decimal igual a ponto, pois meu arquivo texto é delimitado por virgula e estou tendo uma quebra de linha indesejada desalinhando a posição das colunas, quando faço a importação manual onde o access da essas opções funciona perfeitamente, mas o processo precisa ser automatizado, alguém sabe como posso fazer isso na macro? Abaixo a macro que estou utilizando. Obrigado.
Sub importaTurmaUnidadeInsc()
Dim Linha As String
Dim rs As DAO.Recordset
Dim Matriz() As String
Dim fDialog As Office.FileDialog
Dim x As Variant
On Error Resume Next
'Dimensiona o objeto
Dim Fd As Object
'Define a caixa de diálogo como seleção de pasta(s)
Set Fd = Application.FileDialog(1)
'Define as propriedades da caixa de diálogo
With Fd
'Título da caixa de diálogo
.Title = "Selecione o local onde se encontra o arquivo..."
.Filters.Clear
.Filters.Add "Access Projects", "*.csv"
'Caso este método retorne Verdadeiro significa que o usuário selecionou uma pasta
If .Show Then
'Retorna o caminho da pasta para a função
SelecionarPasta = .SelectedItems(1)
Debug.Print SelecionarPasta
'DoEvents
'SelecionarPasta = Application.CurrentProject.Path
'Debug.Print SelecionarPasta
Else
MsgBox "Clique em 'OK' para abortar a importação."
End If
End With
'Finaliza o objeto
Set Fd = Nothing
F = FreeFile
Set rs = CurrentDb.OpenRecordset("base_Turma_por_Unidade_de_inscricao")
Open SelecionarPasta For Input As #F
Line Input #F, Linha ' Pula a 1ª linha
Do While Not EOF(F) ' Começa a importação a partir da 2ª linha
Line Input #F, Linha
Matriz() = Split(Linha, ",")
rs.AddNew
rs!A1=Matriz(0)
rs!A2=Matriz(1)
rs!A3=Matriz(2)
rs!A4=Matriz(3)
rs!A5=Matriz(4)
rs!A6=Matriz(5)
rs!A7=Matriz(6)
rs!A8=Matriz(7)
rs!A9=Matriz(
rs!A10=Matriz(9)
rs!A11=Matriz(10)
rs!A12=Matriz(11)
rs!A13=Matriz(12)
rs!A14=Matriz(13)
rs!A15=Matriz(14)
rs!A16=Matriz(15)
rs!A17=Matriz(16)
rs!A18=Matriz(17)
rs!A19=Matriz(18)
rs!A20=Matriz(19)
rs!A21=Matriz(20)
rs!A22=Matriz(21)
rs!A23=Matriz(22)
rs!A24=Matriz(23)
rs!A25=Matriz(24)
rs!A26=Matriz(25)
rs!A27=Matriz(26)
rs!A28=Matriz(27)
rs!A29=Matriz(28)
rs!A30=Matriz(29)
rs!A31=Matriz(30)
rs!A32=Matriz(31)
rs!A33=Matriz(32)
rs.Update
Loop
Close #F
rs.Close
MsgBox "Arquivo Importado com Sucesso e Removidos duplicados na tabela temporaria!", vbInformation, "Importação de arquivo txt"
End Sub
Símbolo decimal igual a ponto, pois meu arquivo texto é delimitado por virgula e estou tendo uma quebra de linha indesejada desalinhando a posição das colunas, quando faço a importação manual onde o access da essas opções funciona perfeitamente, mas o processo precisa ser automatizado, alguém sabe como posso fazer isso na macro? Abaixo a macro que estou utilizando. Obrigado.
Sub importaTurmaUnidadeInsc()
Dim Linha As String
Dim rs As DAO.Recordset
Dim Matriz() As String
Dim fDialog As Office.FileDialog
Dim x As Variant
On Error Resume Next
'Dimensiona o objeto
Dim Fd As Object
'Define a caixa de diálogo como seleção de pasta(s)
Set Fd = Application.FileDialog(1)
'Define as propriedades da caixa de diálogo
With Fd
'Título da caixa de diálogo
.Title = "Selecione o local onde se encontra o arquivo..."
.Filters.Clear
.Filters.Add "Access Projects", "*.csv"
'Caso este método retorne Verdadeiro significa que o usuário selecionou uma pasta
If .Show Then
'Retorna o caminho da pasta para a função
SelecionarPasta = .SelectedItems(1)
Debug.Print SelecionarPasta
'DoEvents
'SelecionarPasta = Application.CurrentProject.Path
'Debug.Print SelecionarPasta
Else
MsgBox "Clique em 'OK' para abortar a importação."
End If
End With
'Finaliza o objeto
Set Fd = Nothing
F = FreeFile
Set rs = CurrentDb.OpenRecordset("base_Turma_por_Unidade_de_inscricao")
Open SelecionarPasta For Input As #F
Line Input #F, Linha ' Pula a 1ª linha
Do While Not EOF(F) ' Começa a importação a partir da 2ª linha
Line Input #F, Linha
Matriz() = Split(Linha, ",")
rs.AddNew
rs!A1=Matriz(0)
rs!A2=Matriz(1)
rs!A3=Matriz(2)
rs!A4=Matriz(3)
rs!A5=Matriz(4)
rs!A6=Matriz(5)
rs!A7=Matriz(6)
rs!A8=Matriz(7)
rs!A9=Matriz(
rs!A10=Matriz(9)
rs!A11=Matriz(10)
rs!A12=Matriz(11)
rs!A13=Matriz(12)
rs!A14=Matriz(13)
rs!A15=Matriz(14)
rs!A16=Matriz(15)
rs!A17=Matriz(16)
rs!A18=Matriz(17)
rs!A19=Matriz(18)
rs!A20=Matriz(19)
rs!A21=Matriz(20)
rs!A22=Matriz(21)
rs!A23=Matriz(22)
rs!A24=Matriz(23)
rs!A25=Matriz(24)
rs!A26=Matriz(25)
rs!A27=Matriz(26)
rs!A28=Matriz(27)
rs!A29=Matriz(28)
rs!A30=Matriz(29)
rs!A31=Matriz(30)
rs!A32=Matriz(31)
rs!A33=Matriz(32)
rs.Update
Loop
Close #F
rs.Close
MsgBox "Arquivo Importado com Sucesso e Removidos duplicados na tabela temporaria!", vbInformation, "Importação de arquivo txt"
End Sub