Access - sintaxis INSERT INTO falla

 
Vista:

sintaxis INSERT INTO falla

Publicado por nsut (28 intervenciones) el 30/10/2017 13:05:14
Buenas,

Tengo las siguientes sentencias (previamente he abierto un archive Excel):

With Excel.Application
DoCmd.RunSQL "INSERT INTO tabladestino ( campo1, campo2) VALUES ('" & .Cells(i, 3) & "' , " & .Cells(i, 5) & ")
End With

Cuando la ejecuto me sale el error '3346' en tiempo de ejecución: El número de valores de consulta y el número de campos destino son diferentes.

No entiendo por qué me sale ese error si tengo dos campos indicados (campo1 y campo2) y dos valores en la sentencia.

He probado introduciendo un solo valor (en un solo campo) y sí funciona, pero no es lo que busco:

With Excel.Application
DoCmd.RunSQL "INSERT INTO tabladestino ( campo1) VALUES ('" & .Cells(i, 3) & "')
End With

Alguien ve el fallo en el primer conjunto de sentencias que he puesto? Por más vueltas que le doy no lo encuentro...muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

sintaxis INSERT INTO falla

Publicado por Anonimo (3312 intervenciones) el 30/10/2017 23:06:13
Lo correcto (en aras de encontrar el verdadero problema) seria mostrar el contenido real de esa SQL (bien con un MSgBox o en la ventana de inmediato), porque creo que la causa es la falta de uno (o ambos) datos o que su valor sea NULL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

sintaxis INSERT INTO falla

Publicado por nsut (28 intervenciones) el 31/10/2017 07:06:37
Gracias por contestar. Ese paso ya lo hice y comprobé que los dos valores existen y no son null (las celdas del excel al que hacen referencia existen y tienen valor)...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

sintaxis INSERT INTO falla

Publicado por Anonimo (3312 intervenciones) el 31/10/2017 10:18:12
Yo no me refería a que en sus orígenes esos datos estén presentes, sino a lo que interpreta (y ejecuta) Access, esto es: al contenido real de esa SQL en tiempo de ejecución (y antes de ejecutarse), en definitiva: a lo que aparece en el mensaje que saldría si aplicas esta nimia variación:

With Excel.Application

MsgBox "INSERT INTO tabladestino ( campo1, campo2) VALUES ('" & .Cells(i, 3) & "' , " & .Cells(i, 5) & ")

DoCmd.RunSQL "INSERT INTO tabladestino ( campo1, campo2) VALUES ('" & .Cells(i, 3) & "' , " & .Cells(i, 5) & ")
End With
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar