Gostaria de saber como fazer a importação dos dados do excel onde os campos das colunas irão para os campos da tabela no access.
Ex:
campo do excel com a coluna "nome" seja inserido na coluna "nome" do access, independente da suas posições.
Estou usando este código, porém tenho que manter os campos em um formato único.
Private Sub Comando0_Click()
'Tem que ativar o Microsoft Office 12.0 Object Library.
Dim fDialog As Office.FileDialog
Dim varFile As Variant
Dim localhost As String
'cria a listagem
FileList.Visible = False
Me.FileList.RowSource = ""
'seta o arquivo.
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
'habilitar caixa de dialog.
.AllowMultiSelect = True
'informa onde se encontra o arquivo/nome.
.Title = "Please select one or more files"
'limpar e filtra tipo de arquivo.
.Filters.Clear
.Filters.Add "Excel Files", "*.csv"
.Filters.Add "All Files", "*.*"
'Mostrar a caixa de diálogo . Se o método .Show retorna True , o
'User pegou pelo menos um arquivo . Se o método retorna .Show
'False , o usuário clicou em Cancelar .
If .Show = True Then
'Loop através de cada arquivo selecionado e adicioná-lo à caixa de listagem .
For Each varFile In .SelectedItems
localhost = varFile
Next
Dim resp
Dim rs As Recordset
Dim linha$
Dim anArray
Dim db As Database
'conexão com o banco de dados
Open localhost For Input As #1
Set db = DBEngine.Workspaces(0).Databases(0)
Set rs = db.OpenRecordset("INCONSISTENCIAS")
Line Input #1, linha
'verifica a resposta do usuário
resp = MsgBox("Deseja Realmente incluir os dados no Bando de Dados?", vbQuestion + vbYesNo, "Inclusão")
'realiza o procedimento de inclusão
usuario = Environ("username")
'realiza a verificação do excel em csv
If Len(linha) > 0 Then
Do While Not EOF(1)
Line Input #1, linha
anArray = Split(linha, ";")
rs.AddNew
rs(0) = Trim(anArray(0))
rs(1) = Trim(anArray(1))
rs(2) = Trim(anArray(2))
rs(3) = Trim(anArray(3))
rs(4) = Trim(anArray(4))
rs(5) = Trim(anArray(5))
rs(6) = Trim(anArray(6))
rs(7) = Trim(anArray(7))
rs( = Trim(anArray()
rs(9) = Trim(anArray(9))
rs(10) = Trim(anArray(10))
rs(11) = Trim(anArray(11))
rs(12) = Trim(anArray(12))
rs(13) = Trim(anArray(13))
rs(14) = Trim(anArray(14))
rs(15) = Date
rs(16) = usuario
rs(17) = "ATIVO"
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
Else
MsgBox "You clicked Cancel in the file dialog box."
End If
End With
End Sub
Ex:
campo do excel com a coluna "nome" seja inserido na coluna "nome" do access, independente da suas posições.
Estou usando este código, porém tenho que manter os campos em um formato único.
Private Sub Comando0_Click()
'Tem que ativar o Microsoft Office 12.0 Object Library.
Dim fDialog As Office.FileDialog
Dim varFile As Variant
Dim localhost As String
'cria a listagem
FileList.Visible = False
Me.FileList.RowSource = ""
'seta o arquivo.
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
'habilitar caixa de dialog.
.AllowMultiSelect = True
'informa onde se encontra o arquivo/nome.
.Title = "Please select one or more files"
'limpar e filtra tipo de arquivo.
.Filters.Clear
.Filters.Add "Excel Files", "*.csv"
.Filters.Add "All Files", "*.*"
'Mostrar a caixa de diálogo . Se o método .Show retorna True , o
'User pegou pelo menos um arquivo . Se o método retorna .Show
'False , o usuário clicou em Cancelar .
If .Show = True Then
'Loop através de cada arquivo selecionado e adicioná-lo à caixa de listagem .
For Each varFile In .SelectedItems
localhost = varFile
Next
Dim resp
Dim rs As Recordset
Dim linha$
Dim anArray
Dim db As Database
'conexão com o banco de dados
Open localhost For Input As #1
Set db = DBEngine.Workspaces(0).Databases(0)
Set rs = db.OpenRecordset("INCONSISTENCIAS")
Line Input #1, linha
'verifica a resposta do usuário
resp = MsgBox("Deseja Realmente incluir os dados no Bando de Dados?", vbQuestion + vbYesNo, "Inclusão")
'realiza o procedimento de inclusão
usuario = Environ("username")
'realiza a verificação do excel em csv
If Len(linha) > 0 Then
Do While Not EOF(1)
Line Input #1, linha
anArray = Split(linha, ";")
rs.AddNew
rs(0) = Trim(anArray(0))
rs(1) = Trim(anArray(1))
rs(2) = Trim(anArray(2))
rs(3) = Trim(anArray(3))
rs(4) = Trim(anArray(4))
rs(5) = Trim(anArray(5))
rs(6) = Trim(anArray(6))
rs(7) = Trim(anArray(7))
rs( = Trim(anArray()
rs(9) = Trim(anArray(9))
rs(10) = Trim(anArray(10))
rs(11) = Trim(anArray(11))
rs(12) = Trim(anArray(12))
rs(13) = Trim(anArray(13))
rs(14) = Trim(anArray(14))
rs(15) = Date
rs(16) = usuario
rs(17) = "ATIVO"
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
Else
MsgBox "You clicked Cancel in the file dialog box."
End If
End With
End Sub