Imprimir página | Cerrar ventana

Establecer foco en popup "Buscar"

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86910
Fecha de impresión: 26/Marzo/2026 a las 19:24


Tema: Establecer foco en popup "Buscar"
Publicado por: Paco Vidal
Asunto: Establecer foco en popup "Buscar"
Fecha de publicación: 19/Abril/2024 a las 08:42
Ante todo, gracias a los creadores y participantes del foro por establecer y mantener esta herramienta disponible para el público.

Mi consulta es un poco tonta. Disculpen por mi bajo nivel de Access: lo uso desde hace años, pero no soy informático ni nada parecido, y no sé programar. Pero llevo usando Access muchos años y me resulta imprescindible en mi trabajo, me resuelve muchas tareas.

La cuestión supongo que será sencilla para vosotros: tengo un formulario con una macro incrustada que se activa en el evento 'al abrir'. Esta macro es simplemente EjecutarComandoDeMenú --> Buscar. Con Access 2010, el foco se quedaba en el cuadro de diálogo de búsqueda. Actualicé a Access 2016 y ahora el foco se queda en el primer campo del formulario. 

Lo que yo querría es que el foco se quedara como antes, en el cuadro de diálogo, porque así podía empezar a escribir la palabra a buscar inmediatamente, y no como ahora, que tengo que andar buscando el ratón y clicando en el popup cada vez que abro el formulario en cuestión. Son muchas las veces que abro ese formulario al día y lo de buscar el ratón y clicar me saca de los nervios. ¿Me podrían ayudar con esto?

Gracias y un saludo cordial,


-------------
___________________________
Paco Vidal



Respuestas:
Publicado por: Mihura
Fecha de publicación: 19/Abril/2024 a las 09:04
Hola Paco, bienvenido.

Yo no uso macros, así que en detalle no te puedo ayudar, pero, seguro que debe de haber en macros una orden que te permita situar el foco en el campo que desees, ponla a continuación de esa orden de búsqueda.





-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Paco Vidal
Fecha de publicación: 19/Abril/2024 a las 10:00
Ya, gracias... pero las he mirado todas y no he encontrado ninguna que hiciera lo que quiero.

-------------
___________________________
Paco Vidal


Publicado por: lbauluz
Fecha de publicación: 19/Abril/2024 a las 10:12
Hola.

Yo no soy de Access, más bien de Excel, pero creo que antes de finalizar la macro deberías añadir algo similar a:

Forms!Formulario!Campo.SetFocus

Pruébalo y nos cuentas.


Luis.

-------------
El Búho es un pajarraco


Publicado por: Mihura
Fecha de publicación: 19/Abril/2024 a las 10:12
Voy a preguntar por ahí, a ver si alguien sabe algo .... LOL

-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: xavi
Fecha de publicación: 19/Abril/2024 a las 10:56
Hola Paco Vidal y bienvenido al foro,

Primero felicitarte porque la exposición del problema es impecable y no da muchas opciones de interpretación.

Hemos realizado pruebas en Office 2010, 2016 y 365 tanto utilizando tanto una macro incrustada como una instrucción VBA que lanza el mismo cuadro (DoCmd.RunCommand acCmdFind) en el mismo evento Al abrir de un formulario nuevo creado con únicamente un cuadro de texto.

Efectivamente, en 2010 el foco se sitúa en el cuadro de diálogo de búsqueda mientras que en versiones posteriores se sitúa en el primer control del formulario.

Hemos contactado con una persona que tiene contacto con el equipo de desarrollo de Access para ver si hay una solución.

Un saludo



-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: Mihura
Fecha de publicación: 19/Abril/2024 a las 15:47
Hemos tenido un buen rato de charla a tu costa ....   LOL

Happy, otro de los abuelos de este foro, propone una solución usando VBA.

En el evento LOAD del form:

    .
    .
    Me.TimerInterval = 100
End Sub

y en el evento TIMER:

Me.TimerInterval = 0
        Docmd.RunCommand AcCdmFind
End Sub


Por otro lado, a ver si Microsoft nos contesta.





-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: prga
Fecha de publicación: 20/Abril/2024 a las 14:15
Hola.
No es ni mucho menos, al menos para mí, la solución ideal, pero parece ser que el siguiente código funciona al menos en el access 2019.

Private Sub Form_Open(Cancel As Integer)
SendKeys "^b"
End Sub

Ni idea por que mandando CTRL+ b como pulsaciones de teclado funciona y con runcommand no.
Espero que ayude a resolver la duda al menos hasta respuestas mejores
Un saludo a todos


Publicado por: Paco Vidal
Fecha de publicación: 22/Abril/2024 a las 10:05
Muchísimas gracias a todos por la ayuda. 

La solución que me ha funcionado ha sido la de prga. Curioso que enviando las teclas funcione y con la orden, no. En fin, de momento, arreglado está. 

Insisto: muchas gracias a todos y hasta otra. Ojalá pudiera ayudar alguna vez en algo; supongo que no, pero iré entrando con frecuencia en el foro.

Un saludo cordial,



-------------
___________________________
Paco Vidal



Imprimir página | Cerrar ventana