ACCESS : Code sur tous les champs d'un form
Résolu/Fermé
talrashha
Messages postés
7
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
27 août 2008
-
25 juil. 2008 à 10:17
talrashha Messages postés 7 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 27 août 2008 - 29 juil. 2008 à 13:46
talrashha Messages postés 7 Date d'inscription vendredi 25 juillet 2008 Statut Membre Dernière intervention 27 août 2008 - 29 juil. 2008 à 13:46
A voir également:
- ACCESS : Code sur tous les champs d'un form
- Access appdata - Guide
- Acer quick access - Forum Logiciels
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Acer Quick Access - affichage CapsLock, VerrNum - Forum logiciel systeme
- Controller access network - Télécharger - Contrôle parental
7 réponses
blux
Messages postés
26545
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
22 décembre 2024
3 318
25 juil. 2008 à 10:25
25 juil. 2008 à 10:25
Salut,
il faut que tu fasses de ton code une fonction, que tu appeleras dans chaque champ, comme ça, tu n'as qu'une seule fois ton code de recherche et la fonction est appelée partout de la même manière.
De plus, l'évènement 'sur touche appuyée', n'est pas spécifique à la touche 'entrée', mais se produit dès qu'une touche est apppuyée, ça peut te valoir des désagréments futurs...
il faut que tu fasses de ton code une fonction, que tu appeleras dans chaque champ, comme ça, tu n'as qu'une seule fois ton code de recherche et la fonction est appelée partout de la même manière.
De plus, l'évènement 'sur touche appuyée', n'est pas spécifique à la touche 'entrée', mais se produit dès qu'une touche est apppuyée, ça peut te valoir des désagréments futurs...
talrashha
Messages postés
7
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
27 août 2008
25 juil. 2008 à 10:58
25 juil. 2008 à 10:58
Salut,
En fait, le code est très simple :
Private sub recherche()
If KeyCode = vbKeyReturn Then
Commande0.SetFocus
Commande0_Click
End If
End sub
En gros, j'appelle juste ce qui est executé lors du clique sur mon bouton. Le truc, c'est que mon formulaire de recherche est composé d'environ 90 champs, et ce que je cherche, c'est une solution pour ne pas appeler ce code derrière chacun de mes champs, je cherche un truc du genre :
For i = 0 to me.[nb_champ]
me![champ_i].OnKeyPressed = recherche
Next
Merci
En fait, le code est très simple :
Private sub recherche()
If KeyCode = vbKeyReturn Then
Commande0.SetFocus
Commande0_Click
End If
End sub
En gros, j'appelle juste ce qui est executé lors du clique sur mon bouton. Le truc, c'est que mon formulaire de recherche est composé d'environ 90 champs, et ce que je cherche, c'est une solution pour ne pas appeler ce code derrière chacun de mes champs, je cherche un truc du genre :
For i = 0 to me.[nb_champ]
me![champ_i].OnKeyPressed = recherche
Next
Merci
Jean_Jacques
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
112
25 juil. 2008 à 12:13
25 juil. 2008 à 12:13
Bonjour,
Il me semble que cette syntaxe, une fois adaptée, comblera votre besoin.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[NUM_CLIENT] = " & Str(Me![NOM_A_CHERCHER])
Me.Bookmark = rs.Bookmark
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
Il me semble que cette syntaxe, une fois adaptée, comblera votre besoin.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[NUM_CLIENT] = " & Str(Me![NOM_A_CHERCHER])
Me.Bookmark = rs.Bookmark
Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
talrashha
Messages postés
7
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
27 août 2008
25 juil. 2008 à 16:32
25 juil. 2008 à 16:32
Bonjour,
Je n'ai pas vraiment saisie le rapport. Je ne travaille actuellement pas sur une requête, je veut seulement executer un code VB sur un evenement bien déterminé (OnKeyDown) de chaque champ de ma page. Rien à voir avec ma base de donnée.
Je n'ai pas de très grandes connaissances en VBA, mais si je devais le faire en C, je créerais un pointeur void* sur une fonction, mais je ne sais pas s'il on peut faire une telle chose avec Access...
Je n'ai pas vraiment saisie le rapport. Je ne travaille actuellement pas sur une requête, je veut seulement executer un code VB sur un evenement bien déterminé (OnKeyDown) de chaque champ de ma page. Rien à voir avec ma base de donnée.
Je n'ai pas de très grandes connaissances en VBA, mais si je devais le faire en C, je créerais un pointeur void* sur une fonction, mais je ne sais pas s'il on peut faire une telle chose avec Access...
blux
Messages postés
26545
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
22 décembre 2024
3 318
25 juil. 2008 à 16:45
25 juil. 2008 à 16:45
je te rejoins, je crois que jean-jacques n'a pas saisi le fond du problème :
mettre à jour par programmation le contenu de l'évènement 'sur click' de plusieurs contrôles d'un form...
je ne sais pas si c'est possible, j'ai cherché dans l'aide (merdique), mais rien trouvé.
peut-être qu'une question chez nos amis de developpez.net ?
mettre à jour par programmation le contenu de l'évènement 'sur click' de plusieurs contrôles d'un form...
je ne sais pas si c'est possible, j'ai cherché dans l'aide (merdique), mais rien trouvé.
peut-être qu'une question chez nos amis de developpez.net ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Jean_Jacques
Messages postés
1040
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
1 août 2014
112
25 juil. 2008 à 18:03
25 juil. 2008 à 18:03
Bonsoir,
Dont acte, je me suis pris les pieds dans le tapis ....
Je verrais bien une fonction, comme le préconise Blux, mais ... je sèche ...
Je continue à chercher ...
A+
Dont acte, je me suis pris les pieds dans le tapis ....
Je verrais bien une fonction, comme le préconise Blux, mais ... je sèche ...
Je continue à chercher ...
A+
talrashha
Messages postés
7
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
27 août 2008
28 juil. 2008 à 10:06
28 juil. 2008 à 10:06
Bonjour,
Bon, et bien, je n'ai rien trouvé et je ne pense pas que cela soit possible, je vais prendre 1h pour faire tous mes copier-coller, et le problème sera réglé. Mais ce serait une fonctionnalité interessante tout de même.
Merci à tous
Bon, et bien, je n'ai rien trouvé et je ne pense pas que cela soit possible, je vais prendre 1h pour faire tous mes copier-coller, et le problème sera réglé. Mais ce serait une fonctionnalité interessante tout de même.
Merci à tous
blux
Messages postés
26545
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
22 décembre 2024
3 318
28 juil. 2008 à 11:26
28 juil. 2008 à 11:26
j'ai une piste sérieuse...
blux
Messages postés
26545
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
22 décembre 2024
3 318
>
blux
Messages postés
26545
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
22 décembre 2024
28 juil. 2008 à 13:01
28 juil. 2008 à 13:01
ayèèè !!!
Voilà du code à coller sur un bouton du formulaire dans lequel sont les contrôles qu'on veut mettre à jour, c'est pour l'évènement 'surclic', mais ça se modifie aisément :
Voilà du code à coller sur un bouton du formulaire dans lequel sont les contrôles qu'on veut mettre à jour, c'est pour l'évènement 'surclic', mais ça se modifie aisément :
Private Sub Commande0_Click() Dim ctl As Control Dim mdl As Module Dim Ret As Integer Dim Nom As String ' Parcours des contrôles du formulaire courant For Each ctl In Me.Controls 'MsgBox ctl.Properties("Name") ' Si le contrôle m'intéresse If ctl.Properties("Name") = "bout1" Then Nom = ctl.Properties("Name").Value ' Recherche s'il n'y a pas déjà du code à l'évènement onclick If Controls(Nom).OnClick = "" Then Set mdl = Me.Module ' On crée la proc 'surclic' Ret = mdl.CreateEventProc("Click", Nom) ' On insère le code mdl.InsertLines Ret + 1, vbTab & "' ceci est une procédure" & vbCrLf & vbTab & "MsgBox ""coucou""" ' On met la propriété 'surclic' à 'procédure évènementielle Me.Controls(Nom).OnClick = "[Event Procedure]" End If End If Next ctl End SubCa devrait répondre à ton souci (s'il n'est pas déjà réglé !)
talrashha
Messages postés
7
Date d'inscription
vendredi 25 juillet 2008
Statut
Membre
Dernière intervention
27 août 2008
29 juil. 2008 à 13:46
29 juil. 2008 à 13:46
Oula, magnifique solution, c'est complexe, mais cela permet de répondre à pas mal de besoin. Bien joué. Je viens de tomber sur un autre solution, qui est plus simple mais plus spécifique à ce que je cherchais :
Voir https://access.developpez.com/faq/?page=IHM#EvnmtClavier
En fait, dans les formulaire l'attribut "Aperçu des touches" permet de faire remonter les évenements concernant les touche jusqu'au formulaire, et ainsi, une procédure uniquement sur le formulaire suffit.
Par contre, ta solution offre la possibilité de créer dynamiquement des fonctions, ce qui peut être très puissant :)
Merci pour ces recherches, et à bientôt.
Voir https://access.developpez.com/faq/?page=IHM#EvnmtClavier
En fait, dans les formulaire l'attribut "Aperçu des touches" permet de faire remonter les évenements concernant les touche jusqu'au formulaire, et ainsi, une procédure uniquement sur le formulaire suffit.
Par contre, ta solution offre la possibilité de créer dynamiquement des fonctions, ce qui peut être très puissant :)
Merci pour ces recherches, et à bientôt.