Access - Capturar dato usando la tecla Enter

 
Vista:
sin imagen de perfil

Capturar dato usando la tecla Enter

Publicado por pedro (54 intervenciones) el 03/05/2017 06:00:45
Hola comunidad, tengo un inconveniente al momento de capturar datos de un cuadro de texto, lo cual quiero utilizar para una consulta. A continuación expongo el problema y el codigo que uso.

Cuando presiono la tecla Enter y el campo esta vacío me aparece un mensaje el cual yo quiero que aparezca cuando el cuadro este vacío, avisando que no puede realiza dicha operación por que esta vacío.

Si escribo un numero y le presiono Enter, la primera vez me muestra el mensaje diciendo que no hay nada, pero si presiono de nuevo, entonces me muestra el mensaje diciendo el contenido del cuadro de texto.

Luego si borro el contenido, y le doy Enter, me vuelve a mostrar el numero de contenido, cuando en realidad ya no esta.

Pero si presiono Enter de nuevo, me dice que esta vacío por decirlo asi.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim codigo_venta As Variant
 
If (KeyCode = 13) Then
 
   codigo_venta = Me.txt_codigo_rv.Value
 
    If (IsNull(codigo_venta) = True Or codigo_venta = "") Then
 
         MsgBox "No hay un codigo de venta para realizar la operacion de busqueda"
 
    Else
        MsgBox "El codigo es: " & codigo_venta
    End If
 
End If

Este codigo ocurre con el evento
1
Al baja una tecla
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

Capturar dato usando la tecla Enter

Publicado por Anonimo (3396 intervenciones) el 03/05/2017 08:54:52
Access responde de forma correcta con el valor 'actual' que hay en el cuadro de texto, el valor 'real' de ese objeto (mientras no se actualice) no esta en la propiedad VALUE, sino en la propiedad TEXT de ese objeto (al que se le supone el objeto activo)

Si se captura la tecla 'Enter', esta aun no ha procesado su función habitual y por lo tanto tendríamos:

Me.txt_codigo_rv.OldValue ==> el valor anterior al actual
Me.txt_codigo_rv.Value ==> el valor actual (antes de procesarlo, esto es: antes del evento 'después de actualizar')
Me.txt_codigo_rv.Text ==> el valor que se va a introduciendo en el cuadro de texto (y que será el futuro 'Value' tras finalizar la introducción del dato)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Capturar dato usando la tecla Enter

Publicado por pedro (54 intervenciones) el 03/05/2017 18:55:18
Gracias por la explicación, funciona perfecto con
1
text
, 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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Capturar dato usando la tecla Enter

Publicado por Jesús Manuel (375 intervenciones) el 03/05/2017 09:26:37
Lo primero es que no creo que sea necesario la variable, ya que puedes trabajar el código en todo momento con me.txt_codigo_rv en su lugar

Creo que sería más adecuado usar el evento Después de Actualizar y olvidarte de si pulsa o no la tecla ENTER, ya que lo que realmente te importa es si el cuadro de texto tiene o no valor.

Con este código en el evento Después de Actualizar ya controlarías si tiene o no valor:

1
2
3
4
5
If IsNull(Me.txt_codigo_rv) Or Me.txt_codigo_rv = "" Then
    MsgBox "cuadro vacío"
Else
    MsgBox "El codigo es:" & Me.txt_codigo_rv
End If
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