[VB sous Access] Reload un sous formulaire suite modif d'un autre

Reload un sous formulaire suite modif d'un autre [VB sous Access] - VB/VBA/VBS - Programmation

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 ;)

Reply

Marsh Posté le 15-06-2007 à 10:04:24   

Reply

Marsh Posté le 15-06-2007 à 10:09:40    

une histoire de Me.repaint ou me.refresh ?

Reply

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


Message édité par thekingsky le 15-06-2007 à 10:16:03
Reply

Marsh Posté le 15-06-2007 à 10:18:52    

ben tu change le  Me. par le_nom_de_ton_formulaire.refresh :)

Reply

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 ?

Reply

Marsh Posté le 15-06-2007 à 10:23:25    

essaie ca:
Forms![SF-LOG_UTIL].refresh

Reply

Marsh Posté le 15-06-2007 à 10:23:33    

Bon j'ai changé le nom mais maintenant il me dit :
 
Erreur 424 :
Objet requis

Reply

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

Reply

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 !

Reply

Marsh Posté le 15-06-2007 à 10:32:17    

euh, idée toute simple, tu peux pas remplacer le - par un _ ?

Reply

Marsh Posté le 15-06-2007 à 10:32:17   

Reply

Marsh Posté le 15-06-2007 à 10:33:54    

Ouai c'est ce que j'ai fait mais idem :)

Reply

Marsh Posté le 15-06-2007 à 10:38:32    

forms("SF-LOG_UTIL" ).refresh alors ?

Reply

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 ;))


Message édité par thekingsky le 15-06-2007 à 10:45:28
Reply

Marsh Posté le 15-06-2007 à 10:49:27    

hum, de quel point virgule parles tu ?

Reply

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 ?

Reply

Marsh Posté le 15-06-2007 à 10:59:11    

bon ben avec la ligne sans le ; ca te donne rien ?? :sweat:

Reply

Marsh Posté le 15-06-2007 à 10:59:52    

non :(

Reply

Marsh Posté le 15-06-2007 à 11:17:54    

ton sous formulaire, son nom qui apparait dans access est le bon ?

Reply

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).

Reply

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 :)

Reply

Marsh Posté le 18-06-2007 à 09:10:29    

help !

Reply

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 :)

Reply

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 ...

Reply

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.

Reply

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).

Reply

Marsh Posté le 18-06-2007 à 11:03:59    

Comment on met une PJ ?

Reply

Marsh Posté le 18-06-2007 à 11:18:39    

Reply

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.
 
 
 
 
 

Reply

Marsh Posté le 18-06-2007 à 11:26:54    

les fonctions d'une manière générale seront:
.refresh
.repaint
.requery

Reply

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 ?

Reply

Marsh Posté le 18-06-2007 à 11:55:39    

sf2.refresh il te sort quelle erreur alors stp ?

Reply

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

Reply

Marsh Posté le 18-06-2007 à 13:43:05    

et avec Forms("SF2" ).refresh ?

Reply

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.

Reply

Marsh Posté le 18-06-2007 à 14:08:02    

trouvé sur un auter forum:
Me!SF2.form.requery

Reply

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


Message édité par thekingsky le 18-06-2007 à 14:15:09
Reply

Marsh Posté le 18-06-2007 à 14:27:56    

et SF2!form.requery ?

Reply

Marsh Posté le 18-06-2007 à 14:32:58    

Erreur 424:
Objet requis  
:(

Reply

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


Message édité par tegu le 18-06-2007 à 16:58:38
Reply

Marsh Posté le 18-06-2007 à 17:32:11    

Ca marche nikel :D  
 
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 ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed