Error al importar un Excel a Access

Dudas sobre código
Ricardo Inukai
Nivel 1
Mensajes: 7
Registrado: Mié May 08, 2019 5:30 pm

Error al importar un Excel a Access

Mensajepor Ricardo Inukai » Jue Jun 27, 2019 9:05 pm

Buenas tardes.

Nuevamente acudo a ustedes para ver si me pueden ayudar en este tema, basándome en la aplicación de Neckkito "Navegar y Seleccionar Archivo" quise tratar de importar una hoja de Excel a una tabla de Access, pero me aparece el siguiente error "Se ha producido el error '2465' en tiempo de ejecución:

Microsoft Access no encuentra el campo '|1' al que hace referencia la expresión.

Este es el código que utilice.

Private Sub cmdNavegar_Click()
' Este es un codigo basado en una aplicación de Neckkito


Const msoFileDialogFilePicker As Long = 3

' Asignamos el valor de la variable al archivo que seleccionemos al navegar.
' para ello creamos el cuadro de dialogo del Office

Dim FDialogo As Object
Dim Archivo As Variant
Set FDialogo = Application.FileDialog(msoFileDialogFilePicker)

With FDialogo
.allowMultiSelect = False
.ButtonName = "Seleccionar"
.title = "Seleccionar el archivo"
.InitialFileName = Application.CurrentProject.Path
.filters.Clear ' Limpiamos si existiera algun filtro
.filters.Add "Excel Archivos", "*.xls*" ' Agregamos nuestros filtros

'--------------------------------
' Mostramos el dialogo al usuario
'--------------------------------
If .Show = True Then
Archivo = .selectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With

'--------------------------------------------------------------------------------------------
'Aquí viene lo bueno vamos a importar la información del archivo que hemos seleccionado en
'nuestro cuadro de dialogo del Office y hacemos la llamada a la importación de la primera
'hoja de nuestro archivo de excel a las Tablas de nuestro Data Stage
'--------------------------------------------------------------------------------------------
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "502_Transporte", Archivo, True, [502 Transporte de las Mercancía!]

MsgBox "Importación realizada correctamente", vbInformation, "CORRECTO"



End Sub


Lo que esta en negritas es donde me manda el error, la búsqueda del archivo no hay problema, se selecciona y todo marcha perfecto pero al momento de enviar la información a Access aparece el error y no me manda la información a la tabla de Access, espero que me puedan ayudar con esto.


Gracias y saludos!!!

Jilo
Nivel 2
Mensajes: 28
Registrado: Mié Dic 02, 2015 11:05 am

Re: Error al importar un Excel a Access

Mensajepor Jilo » Vie Jun 28, 2019 11:39 am

Hola
Prueba así:
DoCmd.TransferSpreadsheet acImport, , "502_Transporte", Archivo, True

Ricardo Inukai
Nivel 1
Mensajes: 7
Registrado: Mié May 08, 2019 5:30 pm

Re: Error al importar un Excel a Access

Mensajepor Ricardo Inukai » Vie Jun 28, 2019 3:53 pm

Jilo, buen día

ya lo he probado de esa manera y sigue presentando el error.

Pensaba que la variable de Archivo era la que estaba generando el error, así que, lo probé introduciendo la ruta directamente del archivo a importar y sigue generando ese error.

Jilo
Nivel 2
Mensajes: 28
Registrado: Mié Dic 02, 2015 11:05 am

Re: Error al importar un Excel a Access

Mensajepor Jilo » Vie Jun 28, 2019 5:56 pm

No te funciona por que la variable Archivo la tienes declarada como Variant y la Función espera una String.
Cambia
Dim Archivo As String

Ricardo Inukai
Nivel 1
Mensajes: 7
Registrado: Mié May 08, 2019 5:30 pm

Re: Error al importar un Excel a Access

Mensajepor Ricardo Inukai » Lun Jul 01, 2019 4:40 pm

Buenos días Jilo

Ya cambie la variable archivo por String y sigue generando el error.

Probe desde la aplicación de Neckkito y ahí si funciona, lo curioso es que el código esta todo igual solo que en mi aplicación aparece ese error

De ante mano te agradezco la atención.

Jilo
Nivel 2
Mensajes: 28
Registrado: Mié Dic 02, 2015 11:05 am

Re: Error al importar un Excel a Access

Mensajepor Jilo » Lun Jul 01, 2019 5:02 pm

Hola,

Pues he probado y a mi me funciona. Seguro que has tocado algo :mrgreen: .

Espera a ver sí alguno se le ocurre alguna cosa mas.

pitxiku
VIP
Reto02
Mensajes: 290
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Error al importar un Excel a Access

Mensajepor pitxiku » Lun Jul 01, 2019 5:57 pm

Hay otra posibilidad: que realmente access no encuentre el campo.

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "502_Transporte", Archivo, True, [502 Transporte de las Mercancía!]

1. Estas pasando el valor True al parámetro que indica si la primera fila de la hoja de cálculo tiene los nombres de los campos. Con esto, le dices a access que ahí tiene los nombres de los campos para llevar la información de cada columna a cada campo de la tabla. Pero si no es verdad, o si algún dato en esa fila no corresponde realmente al nombre de un campo que exista en la tabla, access no va a saber dónde guardar la información y dará el error.

2. El siguiente parámetro es el nombre o rango de datos a pasar. Entiendo que estás pasando el nombre de un rango o el nombre de una hoja. Si quieres pasar todos los datos y están en la primera hoja, puedes dejarlo en blanco. Pero si hay más columnas en la hoja que campos en la tabla, debes indicar bien el rango, porque access no puede pasar 10 columnas de la hoja de cálculo a 9 campos en la tabla, por ejemplo.

Ricardo Inukai
Nivel 1
Mensajes: 7
Registrado: Mié May 08, 2019 5:30 pm

Re: Error al importar un Excel a Access

Mensajepor Ricardo Inukai » Mié Jul 03, 2019 3:30 pm

Buenos días

Jilo, Pitxiku, gracias por su ayuda, borré todo y volví a empezar desde cero y al parecer el error era muy simple, por lo que ya quedó resuelto el problema eran los corchetes, se los quite y le puse comillas y ya funciono.

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "502_Transporte", Archivo, True, "502 Transporte de las Mercancía!"

Muchas gracias por todo!!!


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado