¿Cómo crear una variable que recoja el valor de un campo y después al apretar un botón la compare con el valor del mismo campo?

Pues mi pregunta es la del enunciado. El tema es que tengo un formulario "x" con un campo llamado "DNI" quisiera que aunque se modifique el DNI por error y se vuelva a dejar como estaba (antes de guardar claro está) lo compare con el valor de la variable 1234 recogida del campo DNI al abrir el formulario y crear una condición como por ejemplo : si variable 1234 es distinta de DNI entonces ...

He utilizado requery pero no me sirve en este caso.

Lo que pueden hacer los usuarios es impredecible o catastrófico :)

2 respuestas

Respuesta
2

A mi me pasa un poco como a Jacinto, no acabo de entender del todo lo que quieres, pero me supongo que en este sentido:

1º/ Creas una variable a nivel del módulo del formulario, debajo de las lineas Option... y sin meterla dentro de ningún procedimiento o función:

Dim laVariable As String   

(As Integer, As String.... según el tipo de datos que vayas a manejar, yo supongo que será String por ser un DNI)

2º/ En el evento "al activar el registro" del formulario, le asignas el valor del cuadro de texto DNI:

laVariable=Nz(Me.DNI,"")

3º/ En el código de tu botón, comparas el valor de la variable con el actual del campo DNI:

If laVariable=Me.DNI Then
   'Aquí lo que quieras si coinciden
Else
   'Aquí lo que quieras si no coinciden
End If

Hola rojo, el proyecto lo tengo en el trabajo el lunes probaré si me funciona tu código. 

Todo este follón es simplemente para un formulario que recoge los datos de una tabla y los muestra .  Y lo que deseo es que si borran el contenido de textbox DNI por error y luego vuelvan a ponerlo igual no conste como que ha sido modificado como me pasa con requery. 

Con requery el programa cree que el contenido del textbox" DNI " ha cambiado cuando realmente solo lo han borrado y vuelto a escribir el mismo dato.

Un abrazo y ya les contaré el lunes si por fin he terminado con este cabo suelto que me queda.

hola de nuevo, no me funciona, creo que lo que está haciendo es copiar el contenido del textbox DNI cada vez que se cambia,   lo que yo deseo es que la variable solo copie el contenido al abrir el formulario y que la variable no vuelva a actualizarse al cambiar el contenido de txtboxDNI.

(para Luego poder comprobar si el txtboxDNI contiene el mismo valor que al cargar el formulario o ha cambiado.)

gracias.

Si has hecho lo que te indicaba (en esos eventos) y no tienes ningún otro código por ahí que interfiera, en la variable se te recogerá únicamente el valor del campo dni al entrar al registro, pero nunca al cambiar su valor ( de nuevo, salvo que tengas algún otro código que interfiera, como un requery...)

Pero prueba, por si acaso, a asignar el valor a la variable en el evento "al cargar" en vez de en "al activar registro", aunque así solo te lo recogerá al cargar el formulario, pero no al cambiar de registros

Hola, tu código funciona a la perfección.

Yo estaba poniéndolo en un sitio equivocado.

Gracias por todo máquina.

Me alegra leer que lo has solucionado.

Respuesta
1

Pedro: Esta pregunta me sale sugerida y nol ogro entender el problema que intentas solucionar-

Partimos de un Formulario (que supongo vinculado a una Tabla o Consula).

Tienes un "Control" (que supongo es un cuadro de texto) llamado DNI, con Origen del Control un Campo que se llama DNI. A partir de ahí ya no sigo el proceso, ni sé de donde sale ese 1234, ni asocio el que "... se vuelva a dejar como estaba...".

Para la construcción de un Bucle.. If.... Then

https://docs.microsoft.com/es-es/office/vba/language/concepts/getting-started/using-ifthenelse-statements 

Un saludo >> Jacinto

Hola Jacinto, creo que " el rojo " si me ha entendido., Pero es que soy un caso perdido para explicarme. Lo voy a intentar de nuevo.

Tengo una tabla , un formulario  llamado x  con un texto box llamado DNI .

Mi intención es crear una variable llamada (1234 o lo que sea).

que al abrir el formulario la  variable nombrada (1234 o lo que sea) recoja el valor del text box DNI .

Después cuando pulse un botón nombrado (guardar ) la variable ( 1234 o lo que sea ) se compare con el actual contenido del text box (DNI).

Y ponerle  al botón (guardar) la siguiente condición:

If el contenido del text box DNI es distinto a la variable then  "Cómprale a Pedro un descapotable"  : )   : )

Un fuerte abrazo jacinto y Rojo, vuestra labor no tiene precio, el descapotable deberia ser para ustedes. 

Estupendo Pedro: Al descapotable le veo un inconveniente grave y es que me despeina los 4 pelos que me quedan, pero todo se andará. Un saludo a los dos >> Jacinto

¡Gracias! A mí no me queda ninguno por lo cual no me despeinó entonces el descapotable pa mí. Jajajajajaj. A ver el lunes si todo funciona y pongo resuelto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas