Mira, si yo pongo
( '" & sql1 & "','" & sql2 & "') es igual que poner
Código:
( '" & "'" & IIf(IsNull(TxtAutor) Or TxAutor = "", " ", TxtAutor) & "', '" & IIf(IsNull(TxtApellido) Or TxtApellido = "", " ", TxtApellido) & "', '" & IIf(IsNull(TxtDireccion) Or TxtDireccion = "", " ", TxtDireccion) & "'" & "','" & "'" & IIf(IsNull(TxtFoto) Or TxtId = "", " ", TxtFoto) & "'" & "')
No sé por qué me da la impresión de que pones demasiadas, demasiadas... comillas... Al menos ya en el mismo comienzo de la sentencia se ve claramente que pones
y debieras poner sólo
En la unión de las dos variables pones
Código:
& "'" & "','" & "'" &
y debieras poner sólo
Y cierras la sentencia con
y la deberías cerrar con
A ver quitas esas comillas que sobran y se te soluciona el problema.
Es más. Yo te aconsejaría que volvieras a tu sentencia inicial, y en ella incrementases el nuevo campo, aunque provenga de distinto origen:
Código:
cnn.Execute "INSERT INTO PRUEBA Values ('" & IIf(IsNull(TxtAutor) Or TxAutor = "", " ", TxtAutor) & "', '" & IIf(IsNull(TxtApellido) Or TxtApellido = "", " ", TxtApellido) & "', '" & IIf(IsNull(TxtDireccion) Or TxtDireccion = "", " ", TxtDireccion) & "','" & IIf(IsNull(TxtFoto) Or TxtFoto = "", " ", TxtFoto) & "' )" Observa cómo pones
TxtId donde creo que debieras poner
TxtFoto...