Importar datos de excel a access con VBA

Estoy intentado importar datos desde Excel a acces mediante VBA. Tengo una tabla en acces llamada ingresos, que tienen exactamente los mismos encabezados que la tabla de Excel. Son 6 columnas Columna1 (texto), Columna 2 (Numero), Columna 3 (texto), columna 4 (texto), Columna 5 (Fecha) y Columna 6 (texto).

Para hacer esto tengo un formulario con un botón con un comando para importar. Pero al hacer clic en el botón me dice: "Error de sintaxis en la instrucción INSERT INTO".

Se que es probable que parte del problema debe estar en que algunos campos son numero, otros texto y otros fecha, pero no se como resolverlo. Les describo acá abajo la parte del INSERT INTO para ver si me pueden ayudar.

SQL = "INSERT INTO INGRESOS" _
& "(Columna 1,Columna 2,Columna 3, Columna 4, Columna 5, Columna 6)" _
& "VALUES(" & "'" & .cells(Contador, 1).Value & "," & "'" & .cells(Contador, 2).Value & "," & "'" & .cells(Contador, 3).Value & "," & "'" & .cells(Contador, 4).Value & "," & "'" & .cells(Contador, 5).Value & "," & "'" & .cells(Contador, 6).Value & "')"

2 Respuestas

Respuesta
1

El error está en la concatenación, pruebe con este script

SQL = "INSERT INTO INGRESOS" _
    & "(Columna1, Columna2, Columna3, Columna4, Columna5, Columna6)" _
    & " VALUES (" _
    & "'" & .Cells(Contador, 1).Value & "', " _
    & .Cells(Contador, 2).Value & ", " _
    & "'" & .Cells(Contador, 3).Value & "', " _
    & "'" & .Cells(Contador, 4).Value & "', " _
    & "#" & Format(.Cells(Contador, 5).Value, "yyyy-mm-dd") & "#, " _
    & "'" & .Cells(Contador, 6).Value & "'" _
    & ")"

Tome el script como una guía hay varios formatos

Respuesta

Vincula la hoja de Excel, copia los datos de la tabla vinculada a tus 'tablas de/en Access' y tras ello elimina la vinculación de la hoja de Excel y no deberá haber problema con los tipo de datos.

Otra alternativa (si la alianza con Excel es reiterativa), es crear la primera vez la importación con el asistente y guardarla, después .. solo hay que utilizarla (basta recordar el nombre de la vinculación guardada).

¡Gracias!

Muchas Gracias.

Es una buena alternativa, pero creo que la opción de código me es más útil para lo que necesito.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas