Bom dia amigos, preciso de ajuda em uma rotina aparentemente simples.
Tenho em um módulo uma rotina que faz a importação de um arquivo CSV para uma tabela do meu banco.
A rotina funciona desde que não tenha nenhuma linha em branco no arquivo CSV.
Preciso que a rotina apenas pule a linha em branco.
Conseguem me ajudar?
Tenho em um módulo uma rotina que faz a importação de um arquivo CSV para uma tabela do meu banco.
A rotina funciona desde que não tenha nenhuma linha em branco no arquivo CSV.
Preciso que a rotina apenas pule a linha em branco.
Conseguem me ajudar?
- Código:
Function Import()
Dim db As DAO.Database
Dim rs As Recordset
Dim OpenFile As Integer
Dim Path, file As String
Dim StrLine As String
Dim strVetor() As String
Dim Contador As Integer
Dim contagem As Integer
On Error GoTo TrataErro
OpenFile = FreeFile
Contador = 0
file = CurrentProject.Path & "\arquivoInput.csv"
Set db = DBEngine.Workspaces(0).Databases(0)
Set rs = db.OpenRecordset("tbBase")
CurrentDb.Execute "DELETE * FROM tbBase"
Open file For Input As OpenFile
Do While Not EOF(OpenFile)
Line Input #OpenFile, StrLine
ReDim strVetor(Contador)
strVetor = Split(StrLine, ";")
On Error Resume Next
With rs
If Trim(strVetor(0)) = "texto1" Or Trim(strVetor(0)) = "texto2" Then
.MoveNext
Else
.AddNew
.Fields![campo1] = Trim(Left(strVetor(1), 10))
.Fields![campo2] = Trim(strVetor(1))
.Fields![campo3] = Trim(strVetor(2))
.Fields![campo4] = Trim(strVetor(3))
.Fields![campo5] = Trim(Left(strVetor(4), 2))
.Fields![campo6] = Trim(Right(strVetor(4), (Len(strVetor(4)) - 3)))
.Fields![campo7] = Trim(strVetor(5))
.Fields![campo8] = Trim(strVetor(6))
.Fields![campo9] = Trim(strVetor(7))
.Fields![campo10] = Trim(strVetor(8))
.Update
.MoveNext
End If
End With
Contador = Contador + 1
Loop
Close #OpenFile
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
MsgBox "Importação concluída com sucesso!"
Exit Function
TrataErro:
MsgBox "Ocorreu um erro na importação!"
If (Err.Number = 3125) Then
MsgBox "Nome da planilha é diferente da especificada. Favor corrigir e reimportar o arquivo.", vbCritical, "Erro!"
ElseIf (Err.Number = 3421) Then
MsgBox "Foi apresentado um erro de formatação na linha " & Contador + 1 & "!", vbCritical, "Erro!"
Else
MsgBox Err.Number & " - " & Err.Description, vbCritical, "Erro!"
End If
End Function