Hola desde México

Disculpa la molestia, tengo un problema en access XP, mi problema es el siguiente, cuando estoy en un formulario y me encuentro posicionado en un registro al mover la rueda central del mouse el formulario pasa y va mostrando todos los registros que se encuentran en el origen de control de ese formulario, mi pregunta es como puedo deshabilitar la rueda central del mouse, o como puedo evitar que el formulario pase al siguiente registro con la rueda del mouse ya que puede provocar que el usuario introduzca los datos erróneamente en un registro incorrecto. Gracias

1 Respuesta

Respuesta
1
Lo primero, indicarte que la rueda del ratón no es el único evento que puede insertar o modificar el funcionamiento de tu programa... También debes tener cuidadi con el Pag. Down, Insert, etc...
Te adjunto una respuesta que hace poco di a otro usuario que quería deshabilitar cualquier tipo de tecla (Tab, Pag Down, ...)y evento de ratón (Scroll) que desplazara o insertara registros de forma no controlada.
Lo único que deberás hacer, a diferencia de este mensaje, sera el modificar los botones de movimiento de registros según te interese...
Pruébalo y ya veras como funciona a la perfección!
Un saludo y no dudes en consultarme las preguntas que te surjan...
Óscar L.M.V.
----------------------------
Voy a intentar explicarte como hacerlo. Respecto a la tecla TAB, es muy sencillo, solo tienes que modificar la propiedad "Cycle" del formulario poniendo como valor "Regustro Activo", así solo te moverás por el registro que tengas en pantalla. Al pulsar el TAB volverá al primer campo del formulario de ESE MISMO REGISTRO, no del siguiente. Lo puedes hacer en diseño (PROPIEDAD DEL FORMULARIO->OTRAS/CICLO.
Pruébalo, pero esto solo soluciona lo del TAB, no del Pag. Down, que es una tecla propia de Access con su propio funcionamiento.
Para solucionar lo del Pag. Down hay que "jugar" con el código como te explico a continuación. Este código que te detallo te impide que insertes un nuevo registro pulses la tecla que pulses, es decir, nos daría igual el Pag. Down, que el TAB que las teclas de función, independientemente de la propiedad Cycle que te decía en el párrafo anterior. Por ello, debes utilizar este código y omiir lo de la propiedad Cycle, ya que solo te la he indicado a nivel de que lo veas por curiosidad.
Para que el formulario funcione como entrada de datos pero no te deje moverte de registro, debes hacer lo siguiente:
1º En las propiedades de datos del formulario, en diseño, debes poner estas opciones:
- Permitir Edidiciones = No
- Permitir Agregar = Si
- Entrada de Datos = Si
2º En el evento Form_AfterInsert() poner (este es el evento que se produce al pulsar el TAB, Pag. Down, etc, tras insertar el registro introducido):
'El formulario solo tiene como origen de datos el registro recien insertado unicamente
Me.RecordSource = "SELECT * FROM TablaOrigenDelFormulario WHERE CampoClave1 =" & Me.CampoClave1 ... '(aqui debes poner los campos de la tabla y del formulario que identifiquen unicamente el registro recien insertado, ninguno mas)
Me.DataEntry = False
Me.AllowAdditions = False
Me.AllowEdits = True
----------------------------
Con esto, el formulario te permitirá introducir un nuevo y único registro, y tras insertarlo dejara de ser u formulario de introducción de datos para pasar a ser un formulario de solo edición y con el único origen de datos del registro recién insertado.
Pruébalo y si tienes alguna duda o consulta no dudes en preguntarme. Esto tiene que funcionarte perfectamente, ya que lo acabo de probar y es exactamente lo que quieres.
Un saludo, suerte en tu desarrollo y ya sabes que aquí estoy para lo que necesites.
Óscar L.M.v.
Oye, gracias por tu explicación, me sirvió a la perfección, y de igual manera si yo puedo ayudarte en algo con respecto a access con mucho gusto lo haré.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas