Ordenar Double-Click en VBA
ResueltoTessel75 -
Hola,
En mi programa, abro un formulario, voy a un control y hago doble clic.
En VBA, sé escribir todo esto, excepto el doble clic.
¿Alguien conoce el comando mágico para hacer doble clic?
He intentado muchas cosas pero no he logrado hacerlo. En particular, a través de DoCmd.RunCommand.
Gracias por su ayuda
8 respuestas
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Ambassadeur 1 588
hola,
¿puedes dar seguimiento a las discusiones anteriores que dejaste en suspenso?
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Ambassadeur 1 588
"Voy a un control": ¿el cursor está entonces bien posicionado sobre este control?
Muéstranos tal vez todo lo que has intentado, eso nos permitirá comprender mejor el contexto, corregir eventualmente un error, y no proponer una solución que no te convenga.
No precisas si tu programa y tu control están bajo Access o si el formulario está en otro software.
Si explicas tu contexto y tu objetivo, tal vez podamos sugerirte otro método que no sea el doble clic.
-
Hola YgBe,
Mi pregunta inicial fue publicada en el grupo de discusión Base de datos / Access, por lo que mi pregunta se refiere efectivamente a VBA-Access con el que estoy trabajando. Una persona cambió la ubicación de mi pregunta, seguramente con razón, pero inicialmente esta precisión no era necesaria.
Ahora bien, digo que con VBA, abro cierto formulario y selecciono un cierto control en ese formulario. Esto no me presenta ninguna dificultad. Sin embargo, este control requiere necesariamente un doble clic para abrirse, así que desearía que este doble clic fuera comandado por el programa en lugar de tener que hacerlo manualmente cada vez.
Reitero que he buscado muchos métodos sin éxito, no puedo citarlos todos, pero sobre todo Cmd.RunCommand ??? y Cmd.?????. Para el resto y para responder a tu pregunta: Sí, estoy en Access, y todos mis objetos están en una sola y misma BD, y la acción que busco no es sustituible por otra simplemente por el hecho de que es la acción por defecto del DblClick en estos controles, en este caso un control PiècesJointes (en VBA, "Attachment").
-
Seleccionas un cierto control, entonces el cursor no está posicionado en este control, ¿es correcto? ¿El control simplemente tiene el "foco"?
No es suficiente al hacer doble clic, primero habría que posicionar el cursor sobre el control, me parece.
Cuando escribes "acción por defecto", ¿quieres decir que no has programado nada para este control, que no has configurado ninguna acción específica? ¿No hay ningún código VBA asociado a este control, ni ninguna macro?
Y supongo que no deseas configurar nada para estos controles.
No dudes en explicar lo que realmente intentas lograr, eso puede darnos ideas para hacer sugerencias.
-
-
A continuación mi código resumido con las órdenes sucesivas. Solo hay 2 líneas
1 ==> DoCmd.OpenForm "F_PiecesJointesSpecifiques", acNormal, "", "[LienPJAppart] = ???? and [CodeLienPJ] = ??? ", , acNormal
2 ==> Forms!F_PiecesJointesSpecifiques!Control_PiècesJointes.SetFocusEntonces abro el formulario "F_PiecesJointesSpecifiques", y apunto el foco en el control "Control_PiècesJointes" sobre el cual hago doble clic.
Sin embargo, me gustaría que ese doble clic se hiciera por programación.
Pero he buscado en mi navegador favorito y no encontré lo que buscaba, y empiezo a creer que no es posible. Existe el evento "DblClick" o la propiedad "OnDblClick", pero no la método que es la forma de desencadenar un evento.
-
Hola,
¿qué se supone que debe hacer la acción al hacer doble clic?
Porque tal vez puedas poner la acción en el 'gotfocus' (o equivalente, hace al menos 5 años que no trabajo con VBAccess) del control?
¡Hasta luego blux! "Los tontos se atreven a todo.
Es incluso por eso que los reconocemos" -
¿Control "PiecesJointes" o "Control_PiècesJointes"?
Porque solo basta con abrir este control cuando abres "F_PiecesJointesSpecifiques", ¿verdad?
Hay algo que no entiendo...
¡Hasta luego blux! "Los tontos se atreven a todo.
Es incluso por eso que los reconocemos"-
Efectivamente, mientras Tessel75 pregunta cómo hacer un doble clic, termina explicándonos que en realidad desea abrir un control. Por lo tanto, el doble clic me parece, desde el comienzo de esta discusión, una distracción, una pista falsa.
Por un lado, el VBA no permite desencadenar eventos como el doble clic.
Por otro lado, antes de hacer un doble clic, es necesario posicionar el cursor sobre el control, lo que "setfocus" evidentemente no hace.No tengo un ejemplo de formulario con un control de este tipo, y no he logrado crear uno que funcione. Por lo tanto, no puedo probar. De lo contrario, probaría para descubrir:
- los métodos disponibles en VBA para controles de este tipo. Según la documentación y lo que he podido probar (muy poco), no hay mucho.
- lo que un usuario puede hacer para "abrir" este tipo de control. ¿Es posible que un usuario haga esto sin hacer doble clic, utilizando solo el teclado? Es más fácil en VBA "presionar" las teclas del teclado que posicionar el cursor sobre un control.
-
-
Se encuentra el modelo de los controles "Adjuntos" en la pestaña "Creación" de la cinta del formulario abierto en modo "Creación". Son controles muy particulares como pueden ser los controles "CuadroDeLista" o "CuadroDeListaDesplegable" o incluso los "MarcoDeObjetoDependiente". Así que, las manipulaciones de estos controles son particulares. Y para los controles "Adjuntos", un doble clic abre la lista de los archivos adjuntos relacionados.
Para responder a la pregunta de Blux, "Control "Adjuntos" o "Control_Adjuntos", es lo mismo, uno y otro; es solo que en mi respuesta anterior llamé a este control "Adjuntos", "ControlAdjuntos".
-
¡Ya está! He encontrado.
La respuesta no tiene nada que ver con "DblClick", salvo que el comando hace lo que se obtiene al hacer doble clic.
Así que, si otras personas querían abrir automáticamente un control "Adjuntos" o en inglés-VBA "Attachment", hay que escribir el comando;
"DoCmd.RunCommand acCmdManageAttachments"
Resuelto
Y gracias a las personas que intentaron ayudarme.