Como hacer que un formulario no guarde cambios en la tabla ACCESS

Tengo un formulario de "Crear Usuarios", en el cual se pincha y abre otra venta (formulario) en el cual se pueden crear más usuarios. Hasta ahí impecable. El problema es cuando la persona no quiere agregar usuario y pincha "CANCELAR", y efectivamente sale del formulario, pero el problema es que si la persona alcanzo a escribir algo en los campos lo guarda de igual manera en la tabla correspondiente, y mi idea es que, aunque la persona llene todos los campos, pero después pulsa "CANCELAR" esos datos no se guarden en la tabla.

2 respuestas

Respuesta
2

Otra opción, que particularmente me gusta más que la que te ofrece Jacinto:

Haz tu formulario independiente de la tabla y pasa los datos con un código en un botón "Guardar".

Por ejemplo, si en tu tabla "Usuarios" (y en el formulario) tienes los campos "Nombre", "Edad" y "Profesion", el código del botón sería:

CurrentDb.Execute "INSERT INTO Usuarios(Nombre, Edad, Profesion) VALUES('" & Me.Nombre & "'," & Me.Edad & ",'" & Me.Profesion & "')"

Si te quieres evitar posibles errores, podrías comprobar que los campos tengan valores previamente.

Un saludo.


Hola. Entonces, para hacerlo debería crear un formulario nuevo sin amarrarlo a ninguna tabla en especial, pero después añadir con este código los campos a la tabla correspondiente. Estoy en lo correcto??

Gracias!

Hago el botón, modifico el código pero no me resulta.

Private Sub Comando72_Click()
CurrentDb.Execute "INSERT INTO TABLA_MEDIADORES(RUT, APELLIDO_PATERNO, APELLIDO_MATERNO, NOMBRES, TELEFONO_MOVIL, CORREO, NRO_REGISTRO, OBSERVACIONES) VALUES('" & RUT & "'," & Apell_paterno & ",'" & Apell_materno & "'," & NOMBRES & "'," & fono & "'," & CORREO & "'," & Registro & "'," & OBSERVACIONES & "')"
End Sub

No se en que estoy fallando estimado, a ver si me ayudas.

Saludos!!

No te haría falta hacer un nuevo formulario, basta con que al que ya tienes le borres el origen del registro al formulario y el origen de control a los distintos controles.

En segundo lugar, no dices por qué no te funciona el código, si te da error y cual... pero solo viéndolo, tienes mal construida la SQL:

Los datos de tipo numérico van directamente (como Edad en mi ejemplo)

Los datos de tipo texto van entre comillas simples (Nombre o Profesión en mi ejemplo)

Los datos de tipo fecha van entre almohadillas (aunque ahora esto no te afecta)

Si acierto con los tipos de campos, tu SQL sería:

"INSERT INTO TABLA_MEDIADORES(RUT, APELLIDO_PATERNO, APELLIDO_MATERNO, NOMBRES, TELEFONO_MOVIL, CORREO, NRO_REGISTRO, OBSERVACIONES) VALUES('" & RUT & "','" & Apell_paterno & "','" & Apell_materno & "','" & NOMBRES & "','" & fono & "','" & CORREO & "'," & Registro & ",'" & OBSERVACIONES & "')"

Y mira mis ejemplos a los que hace referencia Jacinto.

Un saludo


Respuesta
1

Jorge: En el Evento que tengas de Cancelar puedes poner algo así

If Me.Dirty = True Then
     If MsgBox("¿Quieres salir sin guardar?", vbExclamation + vbYesNo,"CONFIRMACION") = vbYes Then
         DoCmd.RunCommand acCmdUndo
     End If
End If
DoCmd. Close

Mis saludos >> Jacinto

Hola. Gracias pero no me resulta. Puse el código en el evento pero no lo toma, guarda igual el dato en la tabla...

Jorge: Ignoro si has probado la solución que te apuntó Sveinbjorn, que a mi me parece muy buena y segura. El tiene tres Ejemplos en la Web de Neckkito, que puedes mirar y seguro que te van a resolver el problema.

http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/formularios 

Los Ejemplos son >> Datos en Formularios Independiente 1, 2 y 3

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas