macro que llame el metodo Buscar

04/07/2003 - 02:47 por Alex | Informe spam
Estoy creando una macro que manda llamar el metodo buscar,
ya que necesito que me aparezca siempre las opciones de
buscar al inicio y que solo en el registro activo. Lei un
documento en Microsoft donde se referia a la accion
EnviarTeclas y EjecutarComando

El documento es el sig.
http://support.microsoft.com/default.aspx?
scid=http://support.microsoft.com:80/support/kb/articles/q1
20/9/12.asp&NoWebContent=1

Pero cuando pongo los valores en la macro me ignora los
mismos y siempre me pone los ultimos cambios que hago en
la ventana buscar

Alguna sugerencia?
 

Leer las respuestas

#1 Juan M. Afan de Ribera
05/07/2003 - 19:23 | Informe spam
Hola Alex,

y ¿por qué no lo haces por código? Es exactamente lo mismo, pero utilizando
el idioma inglés (bueno el idioma Visual Basic, claro, pero que suena a
inglés). Sería así (lo he probado en Access 2000, puede que en otras
versiones sea un poco diferente)

' ponemos el foco en el último control
' que tuvo el foco (se supone que cuando
' se ejecute esto estará en un botón de
' comando
Screen.PreviousControl.SetFocus
' damos 2 veces a la tecla Tab
SendKeys "{TAB 2}"
' damos 1 vez la tecla flecha abajo
SendKeys "{DOWN}"
' damos 4 veces a la tecla Tab
SendKeys "{TAB 4}"
' hacemos que aparezca el cuadro
' de buscar y se procesarán las
' pulsaciones enviadas
DoCmd.RunCommand acCmdFind

Esto se supone que hará lo que quieres, pero tiene una pega (que yo ya no se
como se controla, la verdad): si después de abrir el cuadro de Buscar
cambiamos las opciones de búsqueda, esta opción será la que se quede
predeterminada para la siguiente vez. Entonces, si vuelves a ejecutar este
código ya no hará lo que pretendías, pues dependerá de cómo hayas dejado el
cuadro de Buscar, las pulsaciones que envíes con SendKeys a lo mejor ya no
dispondrán el método Buscar como tú querías.

En realidad, el método SendKeys está bien para salir del paso, pero es un
método demasiado absoluto para que sea eficaz. Me refiero a que es un método
que se efectúa a ciegas, sin saber a qué estas enviando las pulsaciones. A
la que te cambien un poco el entorno (por ejemplo, el cuadro de dialogo
Buscar creo que es diferente entre versiones, así que si pulsas 2 veces la
tecla Tab, a lo mejor te lleva a un punto que no es el que quieres) puede
empezar a hacer cosas que no eran las que pretendías.

En fin...

Aparte de esto, y ya que tocamos el tema de las macros (cosa que a mi me
parece muy bien) me gustaría animar a la gente a la que le "asusta" el
Visual Basic a que se lance. Teniendo un grupo como este, la ayuda de Access
y la practica que tengan con las macros (la cual es una versión reducida de
lo que hace Visual Basic - creedme que es eso exactamente, pues Access
internamente traduce las instrucciones de las macros a código Visual Basic,
si se trata de trabajar con los asistentes, o a código C/C++ si es la misma
aplicación de msaccess.exe) no deberían tener ningún reparo en lanzarse a la
piscina. Primero podrían ser cosas sencillas, como las que te construyen
automáticamente los asistentes, y después podríais seguir construyendo algún
bucle y tratando algunas variables. Con sólo esto, os aseguro que podéis
llegar mucho más allá que con sólo las macros. Eso sí, esta es mi opinión y
cada cual es muy dueño de hacer lo que le plazca, naturalmente.


Saludos desde Barcelona
Juan M. Afan de Ribera
<MVP Ms Access>


"Alex" escribió en el mensaje
news:55d301c341c5$d50f7a70$
Estoy creando una macro que manda llamar el metodo buscar,
ya que necesito que me aparezca siempre las opciones de
buscar al inicio y que solo en el registro activo. Lei un
documento en Microsoft donde se referia a la accion
EnviarTeclas y EjecutarComando

El documento es el sig.
http://support.microsoft.com/default.aspx?
scid=http://support.microsoft.com:80/support/kb/articles/q1
20/9/12.asp&NoWebContent=1

Pero cuando pongo los valores en la macro me ignora los
mismos y siempre me pone los ultimos cambios que hago en
la ventana buscar

Alguna sugerencia?

Preguntas similares