OVH Cloud OVH Cloud

recordsource

9 réponses
Avatar
Patrice
Bonjour,

Par VB, je voudrais changer la source des données d'un sous état.
Quelle est la syntaxe ?

Merci

9 réponses

Avatar
Gilles MOUGNOZ
Bonjour,

Par VB, je voudrais changer la source des données d'un sous état.
Quelle est la syntaxe ?

Merci


Bonjour, Patrice

Je suppose que tu souhaites le faire sur un événement de l'état principal.
Dans ce cas, cela donnerait :

Me.[NomSouEtat].Report.RecordSource = TaNouvelleSource

où TaNouvelleSource est une chaîne contenant une requête SQL ou le nom
d'une table ou d'une requête.

Bonne continuation

Avatar
Patrice
Merci mais ..
J'ai déjà mis cette syntaxe mais j'ai le message d'errue qui me dit :

Impossible de trouver le champ "|" auquel il est fait référence ds votre
expression !


Bonjour,

Par VB, je voudrais changer la source des données d'un sous état.
Quelle est la syntaxe ?

Merci


Bonjour, Patrice

Je suppose que tu souhaites le faire sur un événement de l'état principal.
Dans ce cas, cela donnerait :

Me.[NomSouEtat].Report.RecordSource = TaNouvelleSource

où TaNouvelleSource est une chaîne contenant une requête SQL ou le nom
d'une table ou d'une requête.

Bonne continuation






Avatar
Gilles MOUGNOZ
Merci mais ..
J'ai déjà mis cette syntaxe mais j'ai le message d'errue qui me dit :
Impossible de trouver le champ "|" auquel il est fait référence ds votre
expression !


En fait, ce n'est pas le nom du sous-état qu'il faut indiquer mais le nom du
CONTROLE contenant le sous-état.
En général, c'est le même mais si tu as changé l'objet source du sous-état
(propriété SourceObject), il peut avoir le nom d'un autre sous-état.

Bonne contonuation

Avatar
Patrice
Mon sous état s'appelle CHS_1, le contrôle qui le contient s'appelle R1

Ma syntaxe est la suivante :

Me![R1].RecordSource="select ...."

J'ai aussi essayé :
Me![chs_1].RecordSource="select ...."
report.etat1.[R1].report.RecordSource="select ...."
Rien ne marche !!!


Merci mais ..
J'ai déjà mis cette syntaxe mais j'ai le message d'errue qui me dit :
Impossible de trouver le champ "|" auquel il est fait référence ds votre
expression !


En fait, ce n'est pas le nom du sous-état qu'il faut indiquer mais le nom du
CONTROLE contenant le sous-état.
En général, c'est le même mais si tu as changé l'objet source du sous-état
(propriété SourceObject), il peut avoir le nom d'un autre sous-état.

Bonne contonuation






Avatar
Gilles MOUGNOZ
Mon sous état s'appelle CHS_1, le contrôle qui le contient s'appelle R1
Ma syntaxe est la suivante :
Me![R1].RecordSource="select ...."
J'ai aussi essayé :
Me![chs_1].RecordSource="select ...."
report.etat1.[R1].report.RecordSource="select ...."
Rien ne marche !!!


Tu devrais essayer:

Me![R1].Report.RecordSource="select ...."

Explication :
Pour un controle de type sous-état, la propriété RecordSource n'existe pas:
c'est une propriété d'Etat.
Pour l'obtenir quand même, on utilise la propriété Report qui renvoie
l'objet Etat lié à un contrôle de type sous-état.
Donc, dans l'ordre:
Me = Etat principal
Me![R1] = Contrôle de type sous-état de l'état principal
Me![R1].Report = l'objet Etat lié au contrôle de type sous-état de
l'état principal
Me![R1].Report.RecordSource = la propriété Source de l'objet Etat lié au
contrôle de type sous-état de l'état principal (ouf !)

Bonne continuation

Avatar
3stone
Salut,

"Patrice"
| Mon sous état s'appelle CHS_1, le contrôle qui le contient s'appelle R1
|
| Ma syntaxe est la suivante :
|
| Me![R1].RecordSource="select ...."


Me!ControleSousFormulaire.FORM.Recordsource = "select..."


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
3stone
... un état ;-)

|
| Me!ControleSousFormulaire.FORM.Recordsource = "select..."


plus sûr que tu puisse le faire sans mettre l'état en mode création...

Reports!NomEtat!SousEtat.Report.Recordsource = "select...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Patrice
Merci pour votre aide

Mon état principal s'appelle imp_CHSCT
Mon sous état s'appelle CHS_1, le contrôle qui le contient s'appelle R1

Message d'erreur : La référence d'une expression à la proprièté form/report
n'est pas valide.

je souhaite modifier la source du sous état par VB, j'ai essayé x
combinaisons, rien à faire !!!

Me![R1].Report.RecordSource = "select ..." cela correspond bien à :
Me!ControleSousFormulaire.FORM.Recordsource = "select..."

Reports!imp_chsct![R1].Report.RecordSource = "select ..."


Salut,

"Patrice"
| Mon sous état s'appelle CHS_1, le contrôle qui le contient s'appelle R1
|
| Ma syntaxe est la suivante :
|
| Me![R1].RecordSource="select ...."


Me!ControleSousFormulaire.FORM.Recordsource = "select..."


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
Patrice
Cette syntaxe est la première que j'ai essayée mais sans résultat.

si tu pouvais faire un test personnel pour voir ?


.... un état ;-)

|
| Me!ControleSousFormulaire.FORM.Recordsource = "select..."


plus sûr que tu puisse le faire sans mettre l'état en mode création...

Reports!NomEtat!SousEtat.Report.Recordsource = "select...


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/