| | GCUSSE | Posté le 26/08/2003 @ 11:15 | Petit astucien
171 Messages
| Hello, voici mon ptit bleme que je n'arrive pas a resoudre.
Je plante le decor:
J'ai un formulaire et plusieurs sous-formulaires.
Dans le principal se trouve une liste de selection d'enregistrement.
Dans les sous fourmulaires se trouvent egalement des listes de sélection qui vont changer selon l'enregistrement selectionné dans le principal.
Toutes mes listes dans le form principal et les sous-form commenecnt par LST.
Tous mes sous formulaires commencent par SF_ .
Cette charte sera respectée dans tous les formaulires que je vais créer pour cette base.
Je desire mettre au point un module mise à jour qui va actualiser toutes les listes et ce quel que soit le formulaire qui soit chargé car je ne vais pas m'amuser à en faire un qui va avec chaque formulaire créé..
Voici où j'n suis arrivé:
Public Sub MAJ_PRATIQUANTS()
Dim liste As Control
Dim listeSF As Control
Dim nomSF As String
Dim sf As Form
Dim frm As Form
For Each frm In Forms
For Each liste In frm.Controls
Select Case Left(liste.Name, 3)
Case "LST"
liste.Requery
Case "SF_"
'nomSF = "me." & liste
' For Each listeSF In sf.Controls
' Select Case Left(listeSF.Name, 3)
' Case "LST"
liste.Requery
' End Select
' Next listeSF
End Select
Next liste
Next frm
End Sub
comme vous pouvez le constater, pour ce qui est du formulaire principal, cela fonctionne mais c'est au moment de passer dans les sous formaulires que cela coince....
merci de vos reponses
| | |
| |
| Publicité |
|
| | GCUSSE | Posté le 27/08/2003 à 16:07 | Petit astucien
171 Messages
| bingo j'ai trouvé et cela fonctionne.
Voici le Code:
| Dim unFORM As Form
Dim unCTRL As Control
Dim unCTRLSF As Control
For Each unFORM In Forms
For Each unCTRL In unFORM.Controls
Select Case Left(unCTRL.Name, 3)
Case "LST"
unCTRL.Requery
Case "SF_"
For Each unCTRLSF In unFORM.Controls.Item(unCTRL.Name).Controls
Select Case Left(unCTRLSF.Name, 3)
Case "LST"
' unFORM.Controls.Item(unCTRL.Name).Controls.Item(unCTRLSF.Name).Requery
unCTRLSF.Requery
End Select
Next unCTRLSF
End Select
Next unCTRL
Next unFORM
End Sub |
Et voilà, il m'est maintenant possible d'appeler mon module de mise à jour par n'importe quel formulaire, avec n'importe quel sous-formulaire, sans les spécifier explicitement.
Tout ce que je doit faire c'est bien respecter mon protocole d'appellation des mes listes en "LST" et mes sous form en "SF_".
Celà à pris du temps, mais en rassemblant toutes les connaissances et les esprits de déduction et d'analyse de plusieurs personnes, on y arrive enfin.
Je le mets donc à disposition à toute fins utiles pour les membres du forums (on ne sait jamais) parce qu'il me semble que ce module est très interessant pour tous ceux qui en ont marre de ce coltiner 2 lignes de code pour l'actualisation d'un controle de sous-formulaire et ce à chque controle et pour chaque formulaire. | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|