Problemas con un insercion de datos a traves de INSERT INTO

Estoy intentando en un proceso que queden insertados unos datos en una tabla pero me da el error, y por mucho que estoy mirando no se donde pueda estar el fallo.

CurrentDb.Execute "INSERT INTO [MOVIMIENTOS] (FECHA,NUMEASIENTO,CUENTA,CONCEPTO,DEBE) VALUES (#" & Format(FECHA, "mm/dd/yyyy"), " & Me.ASIENTO & ", " & Me.CuentaDebe & ", " & ConceptoDebe & ", " & Me.Importe & ")"

Este es el error que me esta dando:

3 respuestas

Respuesta
2

Suponiendo que la fecha que está en format sea la de sistema ¿Has probado a quitarle #" & que está delante y dejarlo como

(Format(date(), ""mm/dd/yyyy""))

Respuesta
2

Te falta ponerle la almohadilla también después del valor fecha, así:

CurrentDb.Execute "INSERT INTO [MOVIMIENTOS] (FECHA,NUMEASIENTO,CUENTA,CONCEPTO,DEBE) VALUES (#" & Format(FECHA, "mm/dd/yyyy") & "#, " & Me.ASIENTO & ", " & Me.CuentaDebe & ", " & ConceptoDebe & ", " & Me.Importe & ")"

Respuesta
2

Juan: Ya que ésta pregunta me sale sugerida, te comento mi punto de vista.

En nuestra configuración regional y hablando de esa SQL en concreto, creo que si el valor de Importe tiene decimales que es lo normal, vas a tener el problema de que Access te lo interprete como dos campos y no uno. Ejemplo 35,48 lo interpretará coo 35 ","Separador y 48.

Puedo estar errado, en cuyo caso si alguien me corrige aprenderemos más los dos.

Una forma de soslayarlo es anexarlo como texto, pero si quieres eliminar esa ambigüedad, la formula que se me ocurre es declarar y usar un Recordset, que no tiene los inconvenientes de Formato que la SQL.

Dim StrSQL As String
Dim Rst As DAO.Recordset
StrSQL = "SELECT Fecha,NumeAsieno,Cuenta,Concepto,Debe FROM Movimientos;"
Set Rst = CurrentDB.OpenRecordset(StrSQL,DbopenDynaset)
With Rst
  .AddNew
     !Fecha = Me.Fecha
     !NumeAsiento = Me.Asiento
     !Cuenta = Me.CuentaDebe
     !Concepto = Me.ConceptoDebe
     !Debe = Me.Importe
  .Update
End With
Rst.Close
Set Rst = Nothing

Ya me comentarás. Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas