¿Cómo evitar que mi formulario en access se cierre al dar enter?

Tengo un formulario en access en el cual capturo información sobre los participantes e ciertos programas, el problema es que al momento de picarle al botón enter se cierra el formulario y no quiero que esto suceda ya que confunde a los usuarios, cómo le puedo hacer para que al hacer clic en enter avance al siguiente campo en lugar de cerrarse.

1 respuesta

Respuesta
1

Con la información que proporcionas es difícil ver por qué te pasa eso. Si tuviera que intuirlo diría que tienes algún botón de "Cerrar" que se activa.

Si es así tienes que sacar las propiedades del botón y debes irte a Pestaña Otras -> Punto de tabulación, y ahí cambiar el Sí por un No.

Ya me dirás.

Hola de nuevo,

No, no tengo ningún botón de cerrar.

Tengo un formulario llamado "Beneficiarios" en el cual capturo datos de las personas que participan con nosotros en la asociación, en este formulario les pido datos generales, tales como nombre, municipio, e-mail, etc. el caso es que cuando estoy capturando información en estos campos, por inercia mis compañeros y yo estamos acostumbrados a presionar la tecla enter para lo cual el formulario se cierra inmediatamente siendo que aún no hemos terminado de llenar los demás campos. Yo tengo en mi formulario botones con actividades predeterminadas como guardar y nuevo el cual utilizo para crear un nvo. registro.No sé si me expliqué mejor.

Muchas gracias de antemano.

Lo cierto es que lo que me comentas es bastante extraño. SI quieres que le eche un vistazo sube una copia de tu BD (o una miniBD con los elementos implicados) aquí: (http://www.filebig.net/) y pásame el enlace de descarga.

Evidentemente puedes borrar los datos, si son confidenciales. Ahora me tengo que ir, pero en cuanto pueda me lo miro y te doy una contestación.

Hola,

Te escribo de nuevo para darte el link de la base de datos, en el encontrará dos formularios llamados beneficiarios y contactos los cuales te darás cuenta que al momento de abrirlos y comenzar a escribir información, si presionas la tecla enter el formulario se cerrará.

Otra cosa que me gustaría hacer es que en la pantalla de acceso que es la primera que aparece al abrir la base y donde uno escribe su usuario y contraseña al momento de dar clic me valide el código ligado al botón "ingresar" en sin necesidad de presionar este último.No sé si me expliqué bien.

De antemano, muchísimas gracias.

http://www.filebig.net/files/R4jsfLDZSB

Vamos a ver... tu formulario me está volviendo, literalmente, loco ;)

No acabo de entender por qué se te cierra el formulario al dar al Enter. Empezando por ahí, tienes el código en el módulo asociado al formulario un poco confuso, con códigos asociados a eventos que no están operativos. Un poco lioso.

En el formulario tienes, en un evento, una expresión que me resulta bastante extraña, y que es <form onkeypress="return event.keyCode!=13">. La verdad es que, además de darme error al abrir el formulario, si lo elimino pues nada de nada.

He estado haciendo pruebas suprimiendo dichos códigos, pero el problema persiste. Desde mi punto de vista los códigos están bien y no hay ninguno que dé origen al cierre del formulario al pulsar Enter, por lo que el tema de VBA no parece ser el problema.

Me he encontrado con problemas parecidos (es decir, que no se sabe de dónde sale una acción) y al final la solución ha pasado por crear de nuevo el formulario, con lo que los problemas se han solucionado "como por arte de magia". Es decir, que en alguna parte de Access ha quedado algo "colgado" que provoca la "malfunción", pero vete tú a saber qué es lo que ha quedado "tonto".

Para solucionar de una manera rápida el problema lo que yo haría sería lo siguiente (te recomiendo que lo pruebes en una copia de tu BD y no sobre el original).

1.- Coge el formulario <Beneficiarios> y le cambias el nombre a <Beneficiarios2>

2.- Créate un formulario en blanco, y lo guardas como <Beneficiarios>

3.- Saca las propiedades del nuevo formulario -> Pestaña Datos -> Origen del registro, y seleccionas la tabla <General>

4.- Abre el formulario Beneficiarios2 y seleccionas TODOS los controles que haya (te pones en la esquina superior izquierda y, sin soltar el botón izquierdo del ratón, arrastras hasta la esquina inferior derecha). Una vez seleccionados haces un copy, te vas al formulario Beneficiarios y haces un paste.

5.- Para el nuevo formulario Beneficiarios aún no tendrás un modulo asociado creado. Para crearlo coge cualquier evento de formulario y dile que quieres generar código. Eso te creará el módulo asociado al formulario.

6.- En el editor de VB verás, en la ventana de proyecto, los formularios. Haz doble click sobre <Beneficiarios2> y se te abrirá su módulo. Selecciónalo todo y cópialo.

7.- Haces click sobre <Beneficiarios> y se abrirá su módulo, que en teoría estará en blanco. Ahí haces un paste.

Ahora, en teoría, tienes dos formularios gemelos. A partir de ahí haz unos cuantos testeos para ver que todo te funciona correctamente.

La misma mecánica deberías seguir para el formulario contactos (que yo no puedo abrir porque me sale error).

Finalmente, por lo que me comentas del formulario de inicio, lo que tienes que hacer es lo siguiente:

1.- Quitas el punto de tabulación de los dos botones (propiedades de los botones -> pestaña Otras -> Punto de tabulación: NO)

2.- Sacas las propiedades de TxtPassword y te vas a la pestaña Eventos -> Después de actualizar, y simplemente le generas el siguiente código:

...

Private Sub TxtPassword_AfterUpdate()
Call CmdEntrar_Click
End Sub

...

Así ya te funciona como quieres (el usuario entra su pass y pulsa Enter). Lo que si quieres añadir un detalle que mejorará "la experiencia de usuario" yo haría lo siguiente:

3.- Sacas las propiedades de TxtLogin y en el evento "Después de actualizar" le generas el siguiente código:

...

Private Sub TxtLogin_AfterUpdate()
If IsNull(Me.TxtLogin.Value) Then
Exit Sub
Else
Me.TxtPassword.SetFocus
End If
End Sub

...

Pues nada... A ver si con lo que te he comentado puedes arreglar el problemilla.

Ya me dirás qué tal te ha ido.

Hola¡

Reportándome después de haber intentado lo que me sugeriste, en cuanto a lo de los formularios gemelos me funcionó muy bien la idea del formulario en blanco, el problema con el botón enter desapareció,pero cuando quise intentar hacer un formulario en blanco con exactamente los mismos pasos pero con el diseño de "Cuadro de diálogo modal" me arrojó el mismo problema.

En cuanto a lo segundo, me funcionó de maravilla, de verdad que te lo agradezco mucho¡

Te agradezco mucho que hayas tomado parte de tu tiempo en ayudarme a resolver este problema que bien no es el único que tengo por desgracia U.U

Esta base de datos es para mi jefe y para mis compañeros de trabajo y llevo meses haciéndola y aprendiendo puesto que no sabía absolutamente nada de access, cuando por fin siento que me estoy acercando un poco a lo que busca me doy cuenta que no hay Access para Mac y el y la mayoría de aquí tienen una Mac, sentí que me quería volver loca¡

Me dijo que buscará una solución para esto pero sinceramente no se me ocurre nada en lo que no tenga que diseñar todo de nuevo. Me habla sobre la idea de hacerla web pero cómo es que puedo hacer eso?

De verdad muchas gracias¡

Ciertamente no se me ocurrió poner el formulario en modal. Normalmente yo no utilizo esta sistemática (la de poner formularios en modo modal), dado que opino (es una opinión personal, ojo) que desaprovechas características de Access (y además te obliga a programar "de más" precisamente para soslayar las desventajas del uso de modales). Sobre todo en lo que se refiere al uso de cintas de opciones personalizadas.

Evidentemente sí uso formularios emergentes y modales para pequeños formularios que requieren de la introducción puntual de algún breve dato, pero no para lo que podríamos llamar "formularios de trabajo".

Me alegro que el código para tu formulario de inicio te resultara de utilidad ("algo es algo, dijo un calvo que se encontró un peine sin púas"...).

Respecto del tema de desarrollar la aplicación en web lamento comentarte que ojalá hubiera un sistema para hacerlo con Access, pero, hasta donde yo sé, no existe dicho sistema. Como utilizas Office 2010 tendrás lo que se denomina el "SharePoint", pero tiene tres inconvenientes en tu caso:

- Sigue siendo para Windows, no para Mac

- Las BD's de Access en SharePoint no admiten código VBA

- Si excedes de unos límites tienes que pagar por el servicio

Si quieres leer algo sobre esto del Sharepoint aquí tienes una magnífica explicación de Chea: http://answers.microsoft.com/es-es/office/forum/office_2010-access/necesito-colgar-un-aplicaci%C3%B3n-desarrollada-en/c9dc5827-4f7e-4316-9ae5-556937e16f71

Si quieres operar desde web, a no ser que encuentres alguna solución milagrosa por ahí con Access (y te aseguro que yo llevo tiempo buscándola, aunque aún no la he encontrado) llegas a la conclusión de que Access no es el sistema idóneo. Y eso implica que deberías utilizar un servidor con SQLServer, por ejemplo, y acceder a las tablas a través de otros interfaces, lo que te implicaría aprender algún lenguaje de programación web (algo así como PHP, por ejemplo).

Lamento no poderte dar mejores alternativas pero Access no es la mejor opción para lo que te requiere tu jefe. :(

Para Mac podrías funcionar con un gestor de BD's parecido a Access (bueno, lo de parecido es muy muy relativo), que es FileMaker, pero claro, no es un programa gratuito...

En fin... que no se me ocurre qué más puedo comentarte sobre este tema.

Un gran saludo,

Neckkito

Me fue muy significativa tu ayuda enserio, ya aprendí algo más y aunque me sigue preocupando esta última cuestión espero encontrar una solución pronto.

Muchas gracias de verdad por la ayuda¡

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas