Hola estimados,
Vengo a solicitar su ayuda para intentar resolver un problema que me tiene de cabeza, literalmente xD!
El tema es "super simple", quiero importar datos desde una planilla Excel a una tabla en Access, PERO no me funciona y no puedo saber porque.
Para intentar esclarecer un poco y me puedan entender, estos son los archivos que uso.
Una planilla Excel, donde los datos están distribuidos en 6 columnas sin formato (no es un archivo CSV). Probé poniendo el mismo nombre de los campos que en la base de datos, pero no funcionó.
Y la base de datos Access.
Y el código que tengo para hacerlo es el siguiente:
Y el error que obtengo es el siguiente:
He intentado con muchos códigos hacer lo que quiero, pero nada parece funcionar, o yo lo estoy haciendo mal. Solo me falta esto para terminar este formulario del proyecto, pero no se como solucionarlo.
Atento a comentarios,
Atte.
Francisko.
Vengo a solicitar su ayuda para intentar resolver un problema que me tiene de cabeza, literalmente xD!
El tema es "super simple", quiero importar datos desde una planilla Excel a una tabla en Access, PERO no me funciona y no puedo saber porque.
Para intentar esclarecer un poco y me puedan entender, estos son los archivos que uso.
Una planilla Excel, donde los datos están distribuidos en 6 columnas sin formato (no es un archivo CSV). Probé poniendo el mismo nombre de los campos que en la base de datos, pero no funcionó.
Código [Seleccionar]
168914 asdf 28/11 30/11 4.890 3990
132112 asdf 28/11 30/11 4.890 40% DCTO
149955 asdf 28/11 30/11 4.890 40% DCTO
149956 asdf 28/11 30/11 4.890 40% DCTO
178377 asdf 28/11 30/11 4.890 40% DCTO
178379 asdf 28/11 30/11 4.890 40% DCTO
178380 asdf 28/11 30/11 4.890 40% DCTO
185147 asdf 28/11 30/11 4.890 40% DCTO
197620 asdf 28/11 30/11 4.890 40% DCTO
208424 asdf 28/11 30/11 4.890 40% DCTO
Y la base de datos Access.
Y el código que tengo para hacerlo es el siguiente:
Código (vb) [Seleccionar]
Option Explicit
Private Sub cmdLoad_Click()
Dim excel_app As Object
Dim excel_sheet As Object
Dim db As Database
Dim new_value As String
Dim row As Integer
Screen.MousePointer = vbHourglass
DoEvents
Set excel_app = CreateObject("Excel.Application")
' excel_app.Visible = True
excel_app.Workbooks.Open FileName:=txtExcelFile.Text
If Val(excel_app.Application.Version) >= 8 Then
Set excel_sheet = excel_app.ActiveSheet
Else
Set excel_sheet = excel_app
End If
Set db = OpenDatabase(txtAccessFile.Text)
row = 1
Do
new_value = Trim$(excel_sheet.Cells(row, 1))
If Len(new_value) = 0 Then Exit Do
db.Execute "INSERT INTO BDOfertas VALUES (" & new_value & ")" ' ACA ES DONDE ME MARCA AL MOMENTO DE MOSTRAR EL ERROR EN TIEMPO DE EJECUCION. (LINEA 34)
row = row + 1
Loop
db.Close
Set db = Nothing
excel_app.Quit
Set excel_sheet = Nothing
Set excel_app = Nothing
Screen.MousePointer = vbDefault
MsgBox "Copied " & Format$(row - 1) & " values."
End Sub
Private Sub Form_Load()
Dim file_path As String
file_path = App.Path
If Right$(file_path, 1) <> "\" Then file_path = file_path & "\"
txtExcelFile.Text = file_path & "TEST.xls"
txtAccessFile.Text = file_path & "CLLBD.mdb"
End Sub
Y el error que obtengo es el siguiente:
Código [Seleccionar]
Error '3346' en tiempo de ejecución:
El número de valores de consulta y el número de campos de destino son diferentes.
He intentado con muchos códigos hacer lo que quiero, pero nada parece funcionar, o yo lo estoy haciendo mal. Solo me falta esto para terminar este formulario del proyecto, pero no se como solucionarlo.
Atento a comentarios,
Atte.
Francisko.