Ordonner Double-Click en VBA

Résolu/Fermé
Tessel75 - 21 nov. 2022 à 01:54
 Tessel75 - 23 nov. 2022 à 01:19

Bonjour,

Dans mon programme, j'ouvre un formulaire, je vais sur un contrôle et je double-clique.

En VBA, je sais écrire tout cela, sauf le double-click.

Quelqu'un connait-il la commande magique pour double-cliquer ?

J'ai essayé beaucoup de chose mais sans y parvenir. En particulier via DoCmd.RunCommand .

Merci pour vos lumières


Windows / Firefox 107.0

A voir également:

8 réponses

yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
21 nov. 2022 à 13:55

bonjour,

peux-tu donner suite dans les discussions précédentes que tu laisses en suspens?

0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 Ambassadeur 1 551
Modifié le 21 nov. 2022 à 14:55

"je vais sur un contrôle": le curseur est donc bien positionné sur ce contrôle?

Montre-nous peut-être tout ce que tu as essayé, cela nous permettra de mieux comprendre le contexte, d'éventuellement corriger une erreur, et de ne pas proposer une solution qui ne te convient pas.

Tu ne précises pas si ton programme et ton contrôle sont sous Access ou si le formulaire est dans un autre logiciel.

Si tu expliques ton contexte et ton objectif, nous pourrons peut-être te suggérer une autre méthode que le double clic.

0

Bonjour YgBe,

Ma question initiale était postée sur le groupe de discussion  Base de données / Access ,  ma question porte donc bien sur VBA-Access avec lequel je travaille. Une personne a changé l'emplacement de ma question, sans doute à raison, mais initialement cette précision n'avait pas lieu d'être.

Maintenant, je dis bien qu'avec VBA, j'ouvre un certain formulaire et je sélectionne un certain contrôle sur ce formulaire. Cela ne me pose aucune difficulté. Par contre, ce contrôle demande nécessairement un double-click pour s'ouvrir, aussi souhaiterais-je que ce double-click soit commandé par le programme plutôt que de devoir l'effectuer manuellement à chaque fois.

Je redis que j'ai cherché beaucoup de méthodes sans trouver, je ne peux pas les citer toutes, mais surtout Cmd.RunCommand ??? et Cmd.?????. Pour le reste et pour répondre à ta question: Oui je suis bien sur Access, et tous mes objets sont bien sur une seule et même BD, et l'action recherchée n'est  pas substituable par une autre pour la simple et bonne raison qu'elle est l'action par défaut du DblClick sur ces contrôles, en la circonstance un contrôle PiècesJointes (en VBA, "Attachment")

0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
21 nov. 2022 à 18:06

Tu sélectionne un certain contrôle, donc le curseur n'est donc pas positionné sur ce contrôle, est-ce correct?  Le contrôle a simplement le "focus"?

Il ne suffit pas lors de faire un double clic, il faudrait d'abord positionner le curseur sur le contrôle, me semble-t-il.

Quand tu écris "action par défaut", tu veux dire que tu n'as rien programmé pour ce contrôle, rien configuré comme action spécifique?  Il n'y a pas de code VBA associé à ce contrôle, ni aucune macro?

Et je suppose que tu ne souhaites rien configurer pour ces contrôles? 

N'hésite pas à expliquer ce que tu essaies réellement de réaliser, cela peut nous donner des idées de suggestions.

0

Ci-dessous mon code résumé avec les ordres successifs. Il n'y a que 2 lignes

1  ==>       DoCmd.OpenForm "F_PiecesJointesSpecifiques", acNormal, "", "[LienPJAppart] = ????    and [CodeLienPJ] = ??? ", , acNormal
2  ==>      Forms!F_PiecesJointesSpecifiques!Control_PiècesJointes.SetFocus

Donc J'ouvre le formulaire "F_PiecesJointesSpecifiques", et je pointe le focus sur le contrôle "Control_PiècesJointes" sur lequel je double-clique.

Or je voudrais que ce double-click soit effectué par programmation.

Mais j'ai cherché sur mon navigateur favori mais sans trouver ce que je cherche, et je commence à croire que ce n'est pas possible. Il existe l'évènement "DblClick" ou la propriété   "OnDblClick", mais pas la méthode qui est le moyen de déclencher un évènement.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blux Messages postés 26481 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 novembre 2024 3 315
22 nov. 2022 à 16:27

Salut,

qu'est supposée faire l'action lors du double-clic ?

Parce que tu peux peut-être mettre l'action dans le 'gotfocus' (ou équivalent, il y a au moins 5 ans que je n'ai pas fait de VBAccess) du contrôle ?


0

Merci de ta réponse, et ta question est aussi claire que simple, merci.

Donc: le double-click ouvre le contrôle "PiècesJointes" et expose la liste des fichiers mis en pièces jointes où il suffit de choisir les actions à effectuer, "Ajouter, Supprimer, Ouvrir, etc....".

0
blux Messages postés 26481 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 novembre 2024 3 315
Modifié le 22 nov. 2022 à 17:03

Contrôle "PiecesJointes" ou "Control_PiècesJointes" ?

Parce qu'il suffit d'ouvrir ce contrôle lorsque tu ouvres "F_PiecesJointesSpecifiques", non ?

Y'a un truc qui m'échappe...


0
yg_be Messages postés 23329 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 novembre 2024 1 551
22 nov. 2022 à 18:28

Effectivement, alors que Tessel75 demande comment faire un double clic, il finit par nous expliquer qu'il souhaite, en réalité, ouvrir un contrôle.  Le double clic me semble donc, depuis le début de cette discussion, une distraction, une fausse piste.

D'une part, le VBA ne permet pas de déclencher les évènements tels que le double clic.
D'autre part, avant de faire un double clic de souris, il faut positionner le curseur sur le contrôle, ce que "setfocus" ne fait évidement pas.

Je n'ai pas d'exemple de formulaire avec un contrôle de ce type, et je n'ai pas réussi à en créer un qui fonctionne.  Je ne peux donc pas tester.  Sinon, je testerais bien pour découvrir:

  1. les méthodes disponibles en VBA pour des contrôles de ce type.  d'aprés la doc et ce que j'ai pu tester (trop peu), pas grand chose
  2. ce qu'un utilisateur peut faire pour "ouvrir" ce genre de contrôle.  est-ce possible pour un utilisateur de faire cela sans double cliquer, en utilisant seulement le clavier?  Il est plus facile en VBA de "taper" des touches du clavier que de positionner le curseur sur un contrôle.
0

On trouve le modèle des contrôles "PiècesJointes" sur l'onglet "Création" du ruban du formulaire ouvert en mode "Création". Ce sont des contrôles très particuliers comme peuvent l'être les contrôles "ZoneDeListe" ou "ZoneDeListeDéroulante" ou encore les "Cadred'ObjetDépendant". Alors,  les manipulations de ces contrôles sont particuliers. Et pour les contrôles "PiècesJointes", le double-click ouvre la liste des pièces jointes liées.

Pour répondre à l'interrogation de Blux, "Contrôle "PiecesJointes" ou "Control_PiècesJointes" , c'est la même chose, l'un et l'autre; c'est juste que dans ma réponse précédente j'ai appelé ce contrôle "Pièces Jointes",  "ControlPiecesJointes".

0

Ca y est ! J'ai trouvé.

La réponse n'a rien à voir avec "DblClick", sinon que la commande fait ce qu'on obtient en double-cliquant.

Ainsi, si d'autres personnes voulaient ouvrir automatiquement un contrôle "Pièces Jointes" ou en anglais-VBA "Attachment", il faut écrire la commande ;

"DoCmd.RunCommand acCmdManageAttachments"

Résolue

Et Merci aux personnes qui ont cherché pour m'aider.

0