Access - formulario automatico

 
Vista:

formulario automatico

Publicado por ruben nuñez (5 intervenciones) el 05/12/2005 19:27:01
Pregunta:
Existe alguna forma de que NO se actualicen los datos en la base de datos asociada a un formulario cuando se cambia de registro?
O que por lo menos pregunte si se desea grabar los datos?
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

RE:formulario automatico

Publicado por Rick Hunter (263 intervenciones) el 05/12/2005 19:49:25
Depende mucho de la forma en que este programado el formulario. Para el tipo de control que buscas, lo mas recomendable esque crees las rutinas de actualización en código de VBA y lo asocies al evento del botón de grabación.

Ojala y te sirva.

Saludos!!
Desde Coahuila, Mexico
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
sin imagen de perfil

RE:formulario automatico

Publicado por Ruben (4 intervenciones) el 06/12/2005 14:03:02
En realidad lo que deseo es ponerle un evento, en algun lugar que antes de cambiar de registro (al siguiente o al anterior) que me ignore las modificaciones o que me pregunte si deseo grabarlas

gracias

Rubén desde TAndil, Argentina
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

RE:formulario automatico

Publicado por Enrique (1299 intervenciones) el 06/12/2005 18:44:46
Hola Ruben:
La opción que te propone Rick es realmente la mejor solución. Aunque no te lo explica claramente, se trata de trabajar con controles Independientes, cargando los datos desde la tabla o consulta al formulario mediante Recordset ADO o DAO y después grabando los datos desde el formulario a la tabla de la misma forma, permitiéndote grabar o cancelar los posibles cambios realizados, pero eso requiere unos conocimientos en programación VBA que posiblemente no tengas. Sin complicarte la vida de momento, te sugiero que lo intentes de esta forma:

Le pones al formulario como Origen del Registro la Tabla o Consulta donde estén los datos e igualmente le pones a los campos los Origenes del Control de los campos de la tabla (como lo tienes ahora) y luego usas el Procedimiento de Evento "Antes de Actualizar" del formulario:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim Aviso As Integer
Aviso = MsgBox("¿ Desea grabar los cambios realizados ?", vbQuestion + vbYesNo + vbDefaultButton1, "Grabar cambios")
If Aviso = vbNo Then
'Al cambiar de registro cancela los cambios si pulsamos 'No'
DoCmd.RunCommand acCmdUndo
MsgBox "No se han grabado los cambios realizados.", vbCritical, "Grabar cambios"
Else
'Al cambiar de registro graba los cambios si pulsamos 'Si'
MsgBox "Los cambios realizados han sido grabados.", vbInformation, "Grabar cambios"
End If
End Sub

El comando "DoCmd.RunCommand acCmdUndo" lo que hace es deshacer los cambios realizados en un registro o si se trata de un registro nuevo, cancela su cración y en el caso de que necesitaras Borrar el registro activo, puedes usar: DoCmd.RunCommand acCmdDeleteRecord.

Prueba y verás como funciona de la forma que quieres y coméntanos los resultados.

Saludos
Enrique
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