Pour les brutes d'ACCESS

Résolu
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 4 juil. 2005 à 09:12
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 5 juil. 2005 à 16:22
Bonjour à tous ,



J'ai un tas d'évènements du genre Private sub N1_DblClick(cancel as integer)

de N1.à ..N32_DblClick SOUS ACCESS

Je rappelle que sous ACCESS on ne peut pas faire de groupe avec un
control du même nom donc on ne peut pas faire Me.N1(i).DblClick...



J'aimerais pouvoir faire une boucle du genre

Private Sub Commencer_Click()
Dim i As Integer
For i = 1 To 32
Me("N" & Cstr(i)).OnDlbClick
Next i
End Sub

Pour pouvoir toutes les lancer à la suite

Donc simuler un double click sur chaque boutons

Mais ça ne marche pas avec la propriété DblClick

Si je mets .visible = false ça marche



Merci

TBBUIM

13 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
5 juil. 2005 à 15:06
Voilà le truc tout bidon qu'il fallait écrire...

CallByName Me,"N" & i & "_DblClick",vbMethod
TBBUIM
3
macgyver49 Messages postés 58 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 5 août 2005
4 juil. 2005 à 09:51
salut TBBUIM

Si j'ai bien comprise, ce que tu veux faire c'est déclencher toi même les événememnts pour faire une simulation ??
Si c'est bien cela, tu peux essayer ceci:
Essaie de déclarer tous les événements sur ta feuille avec la propriété PUBLIC
(public sub N1_DBlClick). Alors tu pourras les appeler à partir de tes propres fonctions.

J'espère que cela t'aidera ...

Titi & Panpan
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 juil. 2005 à 10:10
Non cela ne m'aide pas du tout

Si j'écris

public sub Lancer()

N1_DblClick(0)

N2_DblClick(0)

....

End sub



Ca marche, pas besoin de les déclarer en public puisque je veux les
lancer du même formulaire. Ce que je veux, c'est pouvoir lancer les
actions qui sont dans chaque click, pour cela, il me faut, soit
recopier 32 lignes de Nx_DblClick et là ça marche.

Ma question (Pour les brutes d'acess je le rappelle )

C'est comment faire la même chose mais en écrivant cela dans une boucle For?!

Parce qu'imaginons qu'au lien de 32 j'en ai 32000, ça le ferais pas...
TBBUIM
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
4 juil. 2005 à 10:35
'lut

j'ai pas access, mais je ferai comme ca:

Private Sub Commencer_Click()
Dim i As Integer
For i = 1 To 32
Me.controls("N" & Cstr(i)).OnDlbClick
Next i
End Sub

++
0

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

Posez votre question
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 juil. 2005 à 11:26
Bien essayé, mais j'ai déjà essayé aussi!

Et lorsque je fais ça, il me dit:

Propriété ou méthode non gérée par cet objet.



En fait, sous ACCESS, on peut remplacer cela par

Me("N1").Onclick

Mais en VB, on est obligé de mettre controls

Mais c'est la même chose, l'inconvénient, c'est qu'en faisant ça

On peut uniquement changer la propriété OnClick par exemple mettre

= true mais on ne peut pas lancer l'évènement!



Encore, une de mes nombreuses questions, auxquelles personnes ne peut répondre!

J'ai le don pour trouver des colles



PS: J'ai trouvé la fonction Run, qui semblait être la solution à mon
problème, l'inconvénient c'est que cette dernière ne lance que les
fonctions définie dans un module et pas ailleurs, même si elles sont
déclarées en Public...
TBBUIM
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
4 juil. 2005 à 14:33
essaie un truc comme ca (la syntaxe est ptre pas exacte)

Public Function GROUPER(MaForm As Form, NomGroupe As String, NomFonction As String) As Boolean
On Error GoTo Err Dim Ctl As Control
For Each Ctl In MaForm.Controls
If Ctl.Tag = NomGroupe Then
Ctl.OnClick = "=" & NomFonction & "(""" & Ctl.Name & """)"
End If
Next Ctl
GROUPER=true
Err
End Function

Public Function Click_Etiq(NomEtiq As String) As Boolean
MsgBox "vous avez cliqué sur l'étiquette " & NomEtiq
End Function

Private Sub Form_Load()
GROUPER Me, "Groupe", "Click_Etiq"
End Sub

tu n'a plus qu'a mettre "Groupe" dans le tag des controles que tu veux grouper.

n'ayant pas access à disposition, la syntaxe n'est peut etre pas parfaite.

++
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 juil. 2005 à 15:01
Pas mal, j'y ai pensé également, mettre directement le nom de la
fonction dans l'affectation du OnClick. Le soucis, c'est que ça ne fait
que mettre le nom de la fonction mais ça ne l'exécute pas!



Il faudrait un truc du style

For each fonction in Form

Execute fonction

Next



Ca serait vraiment le top, mais je commence à perdre espoir.
TBBUIM
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
4 juil. 2005 à 15:07
et comme ca apres ?

for each ctl in me
if ctl.tag="Groupe" then
call click_Etiq(ctl.name)
end if
next
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 juil. 2005 à 15:16
Ouais mais non, c pas bon, ça ne marchera pas comme ça.

En plus, c'est chaque fonction click de chaque bouton que je veux
lancer pas une fonction à part qui prend les noms en param. Peu importe
d'ailleurs, si je dois réécrire toutes les fonctions, autant faire
comme je l'ai dit toute à l'heure, je les mets toutes dans un module et
je les appelle avec la fonction Run "N" & Cstr(i)

Là jsuis sur que ça marche, mais le but, c'est justement de ne pas en mettre des tartines.

Le truc serait peut être possible, si la fonction Run marchait pour les
fonctions qui ne sont pas dans un module, mais ce n'est pas le cas
apparemment.
TBBUIM
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
4 juil. 2005 à 15:23
je jeterai un coup d'oeil ce soir..
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 juil. 2005 à 15:33
Merci

Mais je doute que tu trouves quelque chose...

À mon avis, ya un truc bidon, ou alors ya pas de truc!

TBBUIM
0
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
5 juil. 2005 à 15:49
faut passer la sub en public aussi, non ?
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
5 juil. 2005 à 16:22
Oui aussi Sinon, ça plante lamentablement
TBBUIM
0
Rejoignez-nous