Evitar que se mueva al siguiente registro al oprimir la tecla Enter?
-
23-08-2019 - |
Pregunta
Tengo un formulario en Access 2003 que sólo debe estar trabajando con un único registro. Puedo establecer la propiedad Cycle
a Current Record
, pero la forma todavía salta al siguiente registro al presionar Enter. Lo primero que pensé era una propiedad KeyPreview
, pero no estoy viendo uno. Mi otro pensamiento es tal vez el evento KeyPress
o KeyUp
, pero pensé que le pediría en caso de consecuencias no deseadas. ¿Alguna idea?
Solución
La propiedad Ciclo sólo afecta a la tecla TAB.
Para controlar el comportamiento de la tecla Enter que es una propiedad global.
Ir a Herramientas / Opciones - ficha del teclado y en "Mover después Enter" seleccionar "Campo siguiente"
Hay eventos KeyPress y KeyDown que se puede utilizar para atrapar la tecla Enter también, pero eso es más trabajo.
Otros consejos
Esto también se puede hacer en VBA.
Application.GetOption "Move After Enter" 'get current setting
Application.SetOption "Move After Enter", 0 'don't move
Application.SetOption "Move After Enter", 1 'Next Field
Application.SetOption "Move After Enter", 2 'Next Record
http: //www.pcreview. co.uk/forums/enter-key-moving-next-field-t3454281.html
Las claves momento como pestaña , Alt , PGUP , Av Pág , Intro son presionados al final de añadir el registro (después del último campo en su mayoría), la base de datos automática guarda toda la información que ha introducido en el formulario y borra los campos para que pueda entrar en el siguiente valor. Lo que pasa es que los datos se guardan, pero la forma parece vacío.
3 cosas que hacer:
- Forma propiedad de ciclo establecido para grabar actual.
- Formulario Clave de vista previa de la propiedad establecida en Sí.
-
Añadir siguiente código al evento KeyDown del formulario:
'33 - PgUp; 34 - PgDown; 9 - Tab; 18=Alt; 13=Enter Select Case KeyCode Case 33, 34, 18, 9, 13 KeyCode = 0 Case Else 'Debug.Print KeyCode, Shift End Select
He encontrado esto mientras recorriendo la web y no tomo crédito / responsabilidad por el código, pero no sé donde lo encontré. Que funciona para mí!
La propiedad Ciclo sólo funciona con la tecla Tab.
Hay dos opciones que podría seguir.
Se podría atrapar la tecla Enter en KeyDown / KeyUp / KeyPressed
- O -
Se podría realizar un filtrado del origen de datos para el registro que desea editar ellos, y desactivar la inclusión de nuevos registros a través de ese formulario.
Se pueden añadir a continuación el código para el formulario de evento 'AntesDeActualizar'. Si el uso quieren pasar al siguiente registro, se le pedirá usuario guardar cierre el formulario antes de que puedan pasar a otra recorde.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Select Case MsgBox("Save?", vbYesNo)
Case vbYes
DoCmd.Close
Case vbNo
Cancel = True
End Select
End Sub
Si usted entra en las opciones de acceso en la página de archivo, vaya a Configuración del cliente y el primer ajuste le permitirá elegir dónde están sus cambios de enfoque a si se pulsa Enter. Al menos en Access 2013.