Problemas de expresión en botón de comando

Necesito codificar un botón para guardar registros y que me pregunte si quiero pasarlo al libro, en caso afirmativo ejecute una instrucción inset Into, lo he intentando pero me da error, y nno se donde me he equivocado.

Lo que he puesto es esto:

Private Sub Comando18_Click()

Dim pregunta As String
Dim Instruccion As String

DoCmd.Save acForm, Me.Name
MsgBox ("El regstro se ha Guardado Correctamente")

pregunta = MsgBox("Desea anotar el apunte en el Libro de Contabilidad", vbYesNo + vbQuestion)
If pregunta = vbNo Then
MsgBox ("Operación Cancelada")
End If
Exit Sub
DoCmd.SetWarnings False
If DocmDCount("*", "T_LibroContabilidad", "Expediente like '" & Me.Expediente & "'") > 0 Then
mimsg ("Este Registro ya ha sido Grabado En el Libro de Contabilidad")

End If
Exit Sub

Instruccion = "INSERT INTO T_LibroContabilidad(Expediente,Fecha_Anotacion,Importe,Tipo,Descripción,Debe,Haber,SaldoAño,Acumulado)VALUES(Expediente,Fecha_Anotacion,Importe,Tipo,Descripción,Debe,Haber,SaldoAño,Acumulado)"
DoCmd.RunSQL Instruccion
MsgBox "El registro se ha grabado correctamente, GRACIAS"

End If

End Sub

¿Alguien puede decirme donde está el error?

1 Respuesta

Respuesta

Hay varias cosas

Cambie la línea DoCmd. Save acForm, Me. Name por DoCmd. RunCommand acCmdSaveRecord

Cambie estas líneas:

If DocmDCount("*", "T_LibroContabilidad", "Expediente like '" & Me.Expediente & "'") > 0 Then
mimsg ("Este Registro ya ha sido Grabado En el Libro de Contabilidad")

End If
Exit Sub

Por:

If DocmDCount("*", "T_LibroContabilidad", "Expediente =" & '" & Me.Expediente & "'") > 0 Then
mimsg ("Este Registro ya ha sido Grabado En el Libro de Contabilidad")

Exit sub

End If
Suprimí el Like, pero si el campo Expediente se debe buscar por alguna parte del campo debe incluirlo.

Estas líneas

Instruccion = "INSERT INTO T_LibroContabilidad(Expediente,Fecha_Anotacion,Importe,Tipo,Descripción,Debe,Haber,SaldoAño,Acumulado)VALUES(Expediente,Fecha_Anotacion,Importe,Tipo,Descripción,Debe,Haber,SaldoAño,Acumulado)"

deben quedar así:

Instruccion = "INSERT INTO T_LibroContabilidad(Expediente,Fecha_Anotacion,Importe,Tipo,Descripción,Debe,Haber,SaldoAño,Acumulado)VALUES('" & Me.Expediente & "," & "#" Format(Fecha_Anotacion,"mm/dd/yyyy") & "#" & "," & Me.Importe & "," & Me.Tipo & ",'" & Me.Descripción & "'" & "," & Me.Debe & "," & Me.Haber & "," & Me.SaldoAño & "," & Me.Acumulado & ")"

Espero a ver entendido, no obstante, si adiciona una imagen ayudaría bastante.

Amigo Eduardo:

Antes de nada quiero agradecer el interés y el tiempo que me dedicas en esta cuestión.

He puesto las modificaciones que me indicas pero el sistema me las pone en color rojo como que no entiende la expresión.

Quizás sea culpa es mía por no saber exponer bien la idea de lo que se pretende , que es la siguiente:

Este formulario esta basado en la tabla "T_Contabilidad", la idea es que en el evento al hacer clic del Botón "Grabar Apunte" se ejecuten las siguietes acciones:

1º Que el registro se guarde en la tabla en su tabla "T_Contabilidad" 

2º Que pregunte al usuario si desea anotar el apunte en el Libro de Contabilidad.

3º Si l la respuesta es= VBNo, que salga del procedimiento.

4º Si la respuesta es VbSi, entonces que compruebe si el apunte  ya esta anotado, en cuyo caso, que avise al usuario de que ese apunte ya esta anotado, y salga del procedimiento. 

5º Si no está anotado en la Tabla "T_LibroContabilidad", entonces que se ejecute la instrucción  INSERT INTO,  Y avise al usuario 

Y eso es todo.

Espero haberme haber explicado bien cual es la idea.

GRACIAS

Lo único es que adicione una imagen del código en rojo

Veo estos errores:

Dcount... está mal porque el apostrofe de Expediente debe ir así

"Expediente ='" &  "'"

En la línea del INSERT INTO igualmente, abre bien pero no lo cierra, algo como:

VALUES ('" & Me.Expediente ='" &  ....

Nuevamente necesito Ayuda.

He introducido las correcciones y me da error de compilación.

En la siguiente Imagen

Después de Expediente le sobra & " ' "

Sigue dando el mismo error

Si quiere envíeme la base de datos con información ficticia a [email protected] y lo reviso. Favor anotar en el asunto la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas