Reload un sous formulaire suite modif d'un autre [VB sous Access] - VB/VBA/VBS - Programmation
Marsh Posté le 15-06-2007 à 10:14:47
Je sais pas j'y connais vraiment rien en VB
Mais je pense que me.refresh ne rafraichira que mon sous-forumlaire où j'ai fais la modif donc pas cool .
Faudrai un refresh d'un autre sous formulaire
Marsh Posté le 15-06-2007 à 10:18:52
ben tu change le Me. par le_nom_de_ton_formulaire.refresh
Marsh Posté le 15-06-2007 à 10:21:49
Oki merci bcp
Mais j'ai encore un ti pb:
mon nom de formulaire s'appel : SF-LOG_UTIL
Et quand je met SF-LOG_UTIL.refresh il me met un espace enter SF et LOG_UTIL du coup il plante ...
Ya un moyen avec des guillement ou autre de lui dire de pas faire ca ?
Marsh Posté le 15-06-2007 à 10:23:33
Bon j'ai changé le nom mais maintenant il me dit :
Erreur 424 :
Objet requis
Marsh Posté le 15-06-2007 à 10:25:36
En mettant Forms![SF-LOG_UTIL].refresh il me dit qu'il ne trouve pas le formulaire SF-LOG_UTIL
Marsh Posté le 15-06-2007 à 10:30:23
J'ai essayé de faire la mise a jour en partant du formulaire principale est de mettre la macro dans la clause "Sur sortie" du sous formulaire mais pareil, il me dit qu'il ne trouve pas la sous formulaire à mettre à jour !
Marsh Posté le 15-06-2007 à 10:32:17
euh, idée toute simple, tu peux pas remplacer le - par un _ ?
Marsh Posté le 15-06-2007 à 10:45:03
Le point virgule il m'a dit qu'il n'aimait pas je l'ai viré
non plus il me dit qu'il le trouve pas !
(merci de m'aider )
Marsh Posté le 15-06-2007 à 10:52:55
ya un smiley au milieu de ta ligne :
et le smiley ca fait un ; et une parenthèse après.
forms("SF-LOG_UTIL".refresh alors ?
Marsh Posté le 15-06-2007 à 11:17:54
ton sous formulaire, son nom qui apparait dans access est le bon ?
Marsh Posté le 15-06-2007 à 11:40:09
SF-LOG_UTIL est-il le nom du sous formulaire dans Access ou bien le nom du contrôle sous formulaire que tu as placé dans ton formulaire principal ?
Et je crois qu'il faut plutôt faire un .requery (à vérifier).
Marsh Posté le 15-06-2007 à 11:55:52
Le nom du Sous formulaire et le meme que le nom du controle dans access
Et je l'ai changé j'ai mis SF_LOG_UTIL de partout
Marsh Posté le 18-06-2007 à 10:18:58
et après ta modif ca en est où ?
comme on galère a pas voir où ca plante, file nous ton fichier de départ en PJ stp
Marsh Posté le 18-06-2007 à 10:34:43
J'ai essayé toute les solutions qu'on a dit mais aucune ne marche, il me dit qu'il ne trouve pas le formulaire en fait ...
Tu veut ma base access entière ? ya trop de truc dedant je peut pas, surtout que les tables sont lié par un lien odbc à un SQL server donc ca sera pas possible de les consulters ...
Marsh Posté le 18-06-2007 à 10:45:08
file nous juste tes 2 formulaires, meme si y a pas de données derriere, on ne gere ici que des évenements.
Marsh Posté le 18-06-2007 à 10:47:56
« il me dit qu'il ne trouve pas le formulaire en fait »
Il te le dit à quel moment, sur quelle instruction ou quel événement ?
Si tu ne nous donnes pas un max de détails (vu qu'on ne pourra pas exploiter ta base), on restera dans le noir.
Sinon essaie de reproduire ton problème avec une base allégée que tu pourrais mettre à dispo (tables locales et tes formulaires).
Marsh Posté le 18-06-2007 à 11:25:44
trop gros ! plus de 1,5Meg !
Mon problème est tout simple :
Etant dans un formulaires SF (SF1 et SF2 sont dans le formulaire SF):
Je modifie un champ dans un sous formulaires SF1 et je veux que quand la modif est faire le sous formulaires SF2 soit mise à jour automatiquement. Sans que j'ai besoin de cliquer dessus et de faire F5.
Sachant que je veux faire ca car SF1 et SF2 sont basé sur la même table.
Marsh Posté le 18-06-2007 à 11:26:54
les fonctions d'une manière générale seront:
.refresh
.repaint
.requery
Marsh Posté le 18-06-2007 à 11:36:47
Ok
Mais je crois que là la fonction est bien trouvé mais il arrive pas à trouver à quoi l'appliquer.
Car si je met le code CB (SF2.refresh) dans la clause sur modification du SF1 il ne doit pas arriver à remonter au SF pour avoir accès au SF2 non ?
Marsh Posté le 18-06-2007 à 13:28:23
retour de la cantine
Erreur :
Erreur d'exécution '424':
Objet requis
C'est l'erreur qu'il me donne sur la ligne SF2.refresh !
J'ai mis cette macro dans le champ "Après MAJ" du SF1
Marsh Posté le 18-06-2007 à 13:57:00
->
Erreur d'exécution '2450':
BDCOM ne trouve pas le formulaires 'SF2' auquel il est fait référence dans une expression de macro ou un code Visual Basic.
Marsh Posté le 18-06-2007 à 14:13:40
yoohoo on ce rapproche
Ca ca marche mais quand je le met dans le SF dans la clause sur sortie du SF1.
Par contre ca plante quand je met ca dans la clause Après MAJ dans le SF1 ...
Il me fait l'erreur '2465':
Il ne trouve pas le champ SF2 auquel on fait ref ...
Je me demande si c'est pas un numéro alléatoire cette erreur mdr
Marsh Posté le 18-06-2007 à 16:52:31
Bon, j'ai rouvert une ancienne base Access pour avancer un peu.
La syntaxe est : Me.SF.Form.Requery
avec SF comme nom du contrôle sous-formulaire dans le formulaire principal
Pour utiliser le RecordsetClone et autres objets liés, la syntaxe est la même :
Me.SF.Form.RecordsetClone
J'ai même utilisé une syntaxe relative dans le code d'un sous formulaire lui même utilisé potentiellement par plusieurs formulaires principaux (pas en même temps). Cette syntaxe permet de rafraichir le contenu d'un autre sous formulaire convenu par la méthode suivante :
Me.Parent!SF_Autre.Form.Requery
J'espère qu'on va y arriver là.
edit: exemple lié à l'événement _AfterUpdate() trouvé ; ça doit pas venir de ce contexte particulier
Marsh Posté le 18-06-2007 à 17:32:11
Ca marche nikel
merci bcp
enfin ya juste un problème c'est que ce marche que lors de l'insertion de donnée, lors de la suppression d'une ligne ca marche pas. Mais ca je pense que je peut le configurer dans les options du sous formulaires
Marsh Posté le 15-06-2007 à 10:04:24
Bonjour à tous
Etant donné que je ne connais pas, ou peu le VB j'aurais aimer savoir comment reloader un sous formulaire suite à la modification d'un autre sous formulaire.
En fait j'ai deux sous formulaires qui sont basé sur la même table mais qui rentre des données différente, donc je veux que quand je rentre des données dans l'un, l'autre ce mette à jour automatiquement.
Là je suis obligé de cliquer sur le 2nd et de le rafraichir manuellement, c'est pas top
Merci de votre aide