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?

¿Fue útil?

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:

  1. Forma propiedad de ciclo establecido para grabar actual.
  2. Formulario Clave de vista previa de la propiedad establecida en Sí.
  3. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top