Access - EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

 
Vista:

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Vicente (23 intervenciones) el 14/04/2018 14:10:10
En el formulario existen textbox obligatorios, como por ejemplo nif, campo al que le he dado formato número.
El botón primero, guardar, funciona correctamente.
Los otros dos botones funcionan también correctamente siempre y cuando el campo obligatorio no se haya rellenado, parcialmente o totalmente con una letra o letras, (texto), .Existe la posibilidad de que se piense que ya has acabado de completar el campo y no sea así.
En el caso de que figure en el txtbox algún carácter alfanumérico, entonces se genera un bucle que no me deja, borrar el campo mal mecanizado y tampoco salir del formulario salvo que lo haga a las bravas.

Muchas gracias.

Un saludo
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Anonimo (3322 intervenciones) el 17/04/2018 08:59:46
Cuando se desea ¿abortar? la creación de un registro, lo mas idóneo es regresar al mismo punto e que no se produjo aun ninguna modificación.

Para ello es útil 'UNDO' que se encarga de reiniciar el registro

Si no se produjo modificación y se aplica dará error, así que lo idóneo es verificar si se puede aplicar con éxito:

1
IF me.Dirty Then Me.Undo
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Vicente (23 intervenciones) el 17/04/2018 13:37:53
Hola. Primeramente darte las gracias por tu ayuda.

Te diré que la sentencia ya figura en el botón que había programado y el resultado es el que decía.
La pregunta que formulo es para no tener que quitar el campo como obligatorio.

Muchas gracias.

Un saludo
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Anonimo (3322 intervenciones) el 18/04/2018 00:19:28
Lamento que mi proposición no solucionase el problema (tanto si se ha intentado como si se esta teorizando sin verificarla), pero lo correcto para recibir ayuda concreta suele ser partir de una exposición TAMBIEN concreta (con todos los datos publicados, esto es: lo que se tiene y no funciona como se espera).

El resto son ... simples intentos que solo sirven para hacer perder eso tan preciado llamado tiempo y que normalmente suelen frustrar a ambas partes.
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Vicente (23 intervenciones) el 18/04/2018 10:34:33
Hola nuevamente. Sigo agradeciendo que prestes atención.
Ayer, tras leer tu contestación y probar que no funcionaba, cogí y grabé pantallazos creando un doc word y así poder remitirlo, pero no lo hice porque para anexar doc. hay que tener cta.
Tras la respuesta de hoy, copio lo que tengo grabado para el botón salir sin guardar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub cmdSalir_singuardar_Click
If MsgBox(" desea cancelar ... ?" &Chr(13), vbQuestion +vbyesNo, "campos requeridos"9 = vbYes Then
C_nombre.Value = Null
c_apellidos.Value = Null
C_contraseña.Value = Null
C_RContraseña.Value = Null
 
Me.Undo
DoCmd.Close
DoCmd.OpenForm "Menu_principal"
Else
Me.C_NIF.Set Focus
End If
End Sub

Gracias.
Un saludo
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Anonimo (3322 intervenciones) el 18/04/2018 22:21:50
Analizando el codigo expuesto he apreciado unos detalles que deberian pulirse, pero primero analicemos lo que se desea hacer exactamente....

Si se pulsa el boton (por seguridad pero me parece que quien lo pulse 'deberia saber que es lo que quiere' y lo sabra) se presenta un mensaje de confirmacion (lo cual EXIGE dos click ... para hacer lo que se supone se quiere hacer)

En funcion de la respuesta al mensaje o se sale del formulario o se redirige el foco a un campo del formulario.

Sobre el mensaje, dejando aparte lo de el nueve en lugar del parentesis (se asume que es un error de transcripcion) hay un CHR(13) que Access no lo asumira bien, si se desease un SALTO DE LINEA en Access se aplica el nemotecnico VbCrLf (que en esencia es un Chr(13) + Chr(10) ... salto de linea y retroceso del carro) solo el CHR(13) .... puede pasar cualquier cosa.

Entramos en la decision .... Salir o no salir
Si salimos ¿para que darles valores a los cuadros de texto si se va a destruir el formulario? ... y ademas con un NULL, algo que no siempre lo aceptan los origenes de datos, lo 'normal' es darles un valor adecuadfo al tipo, sea la cadena de texto vacia si es un dato alfanumerico o un CERO si es numerico ... etc. (asignar un NULL puede genera errores, claro que ello depende del origen de datos).

En fin, lo correcto: regenerar el formulario un ME.UNDO pero por precaucion (no se modifico nada en el formulario) se condiciona como expuse en mi anterior mensaje y tras ello directamente se abre el otro formulario y se cierra el actual.

Que no se desea salir ??? pues se envia el foco al campo que se quiera y fin de la historia

¿Como lo plantearia yo? ... (asumiendo que se conserva la opcion del mensaje)

Si NO se desea salir
.- se envia el foco al campo y se aborta el evento

Si se desase ('saltara' la linea anterior por no cumplir la condicion) y directamente Undo ==> Apertura del formulario ==> cierre del formulario activo.

1
2
3
4
5
6
Private Sub cmdSalir_singuardar_Click
If MsgBox(" desea cancelar ... ?" & VbCrLf, vbQuestion +vbyesNo, "campos requeridos") <> vbYes Then Me.C_NIF.Set Focus: Exit Sub
IF me.Dirty Then Me.Undo
DoCmd.OpenForm "Menu_principal"
DoCmd.Close
End Sub
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Vicente (23 intervenciones) el 19/04/2018 16:06:29
Hola. Buenas tardes.
Sigo agradeciéndote que pierdas el tiempo con mi consulta pero tengo que decir que el resultado tras incorporar las líneas que incorporas a la respuesta es peor al que inicialmente daba. Ahora ni se inmuta, ni borra ni hace nada.
Por supuestísimo que el error debe ser como consecuencia de algún error mío que ahora no descubro pero que indagaré. Te comento esto por si hubieras tenido algún error en la transcripción de comandos o sentencias y yo al hacer un copia pega no surta el efecto deseado.

Un saludo y gracias
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Anonimo (3322 intervenciones) el 19/04/2018 18:14:28
Desde la distancia y con los datos expuestos, no puedo llegara a ninguna conclusión sobre la causa de su ¿anormal? funcionamiento.

Lo único que puedo aconsejar es que se inserte un punto de depuración y se haga el adecuado seguimiento, por poder ser puede ser incluso que la subfunción y el evento no se correspondan (no estén sincronizados), dado que una parte es la generación del código (por el métodos que sea) y por otra que el evento de ese objeto este activado y cuando llegue a el, ejecute esa subfunción y no otra.

De todas formas mi línea seria mas estricta, si pulsa el botón ... sale sin pedir permiso y si el usuario se confundió, que vuelva a entrar en ese mismo formulario (algo que se supone que sabrá hacer, ya que a el llego en algún momento).

Los mensajes son muy estéticos, pero en el trabajo diario suponen un incordio (y a quienes trabajan con el teclado como método preferente .... les suele complicar la vida, cuando seria mas efectivo que 'para ellos' existiera la alternativa de pulsar la tecla escape y llegar al mismo sitio .... con el mismo código llamado desde otro sitio).

Suerte en la búsqueda del problema, es lo único que desde la distancia se puede desear.
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Vicente (23 intervenciones) el 20/04/2018 09:08:17
Nuevamente te doy las gracias por tu tiempo.
Como bien dices tendré que seguir indagando.
Un saludo
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

EN UN FORMLARIO TENGO TRES BOTONES, GUARDAR, BORRAR (LIMPIAR CAMPOS) Y SALIR (borrar sin guardar) D

Publicado por Vicente (23 intervenciones) el 23/04/2018 13:36:35
Hola Anónimo.
Lo primero decir que la programación del botón que hiciste funciona correctamente.
Tras los comentarios que reflejaste en el correo, hizo que me pusiera a ver las consulta y los formularios observando los posibles errores. Me he dado cuenta de que tenía un completo desaguisado. Quizá fuese porque copiaba y pegaba formularios adaptandolos a la nueva función pero por lo que he visto no era así. Había cosas que ni correspondían al asunto a tratar y otras cuestiones que tras una breve mirada he podido simplificarlas.
Ahora me toca ir probando los diferentes formularios y ver el resultado.
Seguro que dentro de nada me surje un nuevo problema, pero hasta entonces gracias por todo.
Como habrás podido comprobar no tengo ni idea de programación pero estas páginas y otras como esta ha hecho que empiece a entender mínimamente las cuestiones que se me plantean.
Un saludo
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