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
Je vais essayer de trouver le bon chemin d'accès grâce à ce que tu m'as dit. Encore merci.
Bonjour, je suis tombée sur ce post dans mes recherches sur le forum. Ma question portant sur la même chose, si j'ai bien compris, dans mon cas, si je veux, quand je fais une nouvelle saisie dans mon form de saisie, que cela soit se retrouve immédiatement dans mon formulaire de consultation / navigation, sans être obligée de fermer ma base et de l'ouverture pour voir mon enregistrement, je dois faire en fait un Refresh...
De même, si dans mon form de consult, je fais des modif sur un enregistrement existants que je veux que ça apparaisse immédiatement...
Merci pour vos précisions.
Cordialement
Bonjour, Nessie37
Sache qu'avec des tables et des relations correctement faites, Access valide par défaut automatiquement.
Dans ton cas il faut remettre à plat tes tables et tes relations (comme je te l'ai déjà suggéré).
De plus, pour la tenue du forum, ce n'est pas terrible de reprendre un vieux post.
Bon courage
![]()
Bonjour Micniv
Le problème c'est que j'ai peur de tout chambouler.
Je ne suis pas une experte, j'ai créé mes tables de façon scolaire et je ne vois pas où je pêche.
Pour la réouverture du vieux post, je ne savais pas que cela posait un problème. Je ne me voyais pas reposter alors que cela avait déjà été posé.
Mais si cela n'est pas conforme alors je ne le referai plus
Partager