ms access - tabla - ¿Evitar pasar al siguiente registro cuando presionas Enter?
insertar registros en access desde formulario (6)
Tengo un formulario en Access 2003 que solo debería funcionar con un solo registro. Puedo establecer la propiedad de Cycle
en Current Record
, pero el formulario sigue saltando al siguiente registro cuando presiono Entrar. Mi primer pensamiento fue una propiedad de KeyPreview
, pero no estoy viendo una. Mi otro pensamiento es tal vez el evento KeyPress
o KeyUp
, pero pensé que podría preguntar en caso de consecuencias no deseadas. ¿Algunas ideas?
La propiedad Cycle solo afecta la tecla TAB.
Para controlar el comportamiento de la tecla Enter que es una propiedad global.
Vaya a Herramientas / Opciones - pestaña Teclado y en "Mover después de ingresar" seleccione "Siguiente campo"
Hay eventos KeyPress y KeyDown que puede usar para atrapar la tecla Intro también, pero eso es más trabajo.
La propiedad Cycle solo funciona con la tecla Tab.
Hay dos opciones que podrías perseguir.
Puede atrapar la tecla Intro en KeyDown / KeyUp / KeyPressed
- O -
Puede filtrar el origen de datos al único registro que desea editar, y deshabilitar la adición de nuevos registros a través de ese formulario.
Puede agregar el código siguiente al evento ''BeforeUpdate'' de su formulario. Si el uso desea pasar al siguiente registro, le pedirá al usuario que lo guarde y luego lo cerrará antes de que pueda pasar a otro registro.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Select Case MsgBox("Save?", vbYesNo)
Case vbYes
DoCmd.Close
Case vbNo
Cancel = True
End Select
End Sub
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-key-moving-next-field-t3454281.html
Las teclas de momento como TAB , Alt , PgUP , PgDn , Enter se presionan al final de agregar el registro (después del último campo en su mayoría), la base de datos guarda automáticamente toda la información que ingresó en el formulario y borra los campos para que puede ingresar el siguiente valor Entonces, lo que sucede es que los datos se guardan pero el formulario parece vacío.
3 cosas para hacer:
- Propiedad del ciclo de formulario establecida en el registro actual.
- La propiedad de previsualización de clave de formulario está configurada en Sí.
Agregue el 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
Lo encontré mientras recorría la web y no me atribuyo el crédito ni la responsabilidad del código, pero no sé dónde lo encontré. ¡Funciona para mi!
Si accede a Opciones de acceso en la página de archivos, vaya a Configuración del cliente y la primera configuración le permitirá elegir a dónde cambia su enfoque cuando presione enter. Al menos en Access 2013.