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