Bonjour,
Pourriez-vous m'expliquer de manière très simple quelle est la différence entre Refresh et Requery ?
Je vous remercie d'avance.
Bonjour,
Pourriez-vous m'expliquer de manière très simple quelle est la différence entre Refresh et Requery ?
Je vous remercie d'avance.
Bonjour.
Pour faire TRES simple. Soit un formulaire et sa source de données, les 2 méthodes s'appliquent au formulaire :
- Refresh met à jour la source de données des modifications saisies dans le formulaire;
- Requery remet à jour le formulaire en réinterrogeant la source de données ( les données ou la requête ont pu changer)
La réalité est pus hard mais pas très éloignée.
PGZ
Pour être sûre d'avoir compris, prenons l'exemple de ma base de données.
J'ai un sous-formulaire "SF1" qui affiche la liste des salariés d'une entreprise.
Pour indiquer qu'un salarié appartient à une entreprise, une case "coche1" dans le formulaire principal est décochée. Pour indiquer qu'un salarié n'appartient plus à une entreprise, "coche1" est cochée.
Par exemple, le "SF1" affiche trois salariés pour l'entreprise CHEVAL : DUPOND, DURANT et DUCHEMIN. Si je coche "coche1" dans la fiche de DUCHEMIN, cela veut dire qu'il ne travaille plus chez CHEVAL.
Je souhaite que si l'utilisateur coche "coche1", "SF1" se mette automatiquement à jour.
S'agit-il bien d'un Requery ? Si oui, comment le mettre en oeuvre ?
Re,
Si, à mon tour, j'ai bien compris, les cases à cocher sont dans le formulaire et tu veux mettre à jour le sous formulaire.
Si c'est ca (...), une procédure évènementielle après mise à jour de de la case à cocher qui fait un .requery sur le sous-formulaire.
Suivant la structure de tes tables et de ton formulaire, tu peux être obligée de faire d'abord un Refresh du formulaire.Mais je n'ai peut-être rien compris...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub MaCaseACocher_AfterUpdate me.Refresh Me.ConteneurSf.Requery End sub
Bon courage,
PGZ
Bonjour,
J'ai essayé ce code en l'appliquant à ma case à cocher. Je pense que je ne suis pas loin mais j'ai encore un petit souci.
En fait, il y a plusieurs niveaux de hiérarchie dans mes formulaires et sous-formulaires. Ma case à cocher "coche1" est dans un sous-formulaire "SF1" qui lui-même est dans le formulaire principal "F1" contenu dans l'onglet 1. Mon sous-formulaire à actualiser "SF2" est dans un autre sous-formulaire "SF3" contenu dans l'onglet 2.
Quand j'applique le code que tu m'as donné en mettant :
Access me répond que SF2 est un membre de méthode ou de données introuvable. Je suppose que c'est parce qu'il n'est pas situé dans le même formulaire que ma case à cocher.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub coche1_AfterUpdate() Me.Refresh Me.SF2.Requery End Sub
Je vous remercie d'avance pour vos conseils.
Bonjour.
C'est à toi de trouver le "chemin" de ton objet. Si tu ne maîtrise pas bien la structure de ton formulaire, voici une méthode simple.
Par exemple, ton code est dans SF1 et tu veux atteindre SF2, les 2 SF sont placés dans F.
Tu vérifies que tu es bien dans SF1Tu essaies de trouver le formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Me.NameSi c'est bon, tu peux maintenant redescendre à SF2, et tu vérifies
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Me.Parent.NameSi tu as atteint le contrôle de SF, alors tu peux écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Me.Parent.SF2.NAmeTu vois le truc. A toi maintenant de trouver le chemin de ton SF2 depuis SF1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.Parent.SF2.Requery
Bon courage,
PGZ
Partager