Changer le recordsource d'un sous_form d'un état en vba

Résolu
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 16 janv. 2004 à 09:39
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 9 avril 2004 à 10:07
Bonjour à tous,
J'espère que quelqu'un sur cette terre peut m'aider
Je suis désespéré et dégouté d'Access :(

J'essaye de changer par VBA le recordsource d'un sous_formulaire dans un état et je n'y arrive pas.
Pourtant, quand je veux changer le recordsource dans sous_formulaire dans un formulaire ça marche très bien.
Pour y parvenir, j'écris:

Me.ss_form.Form.RecordSource = rq_source

Et ça marche très bien. Je suis obligé de passer par le VBA car je veux changer la table en fonciton des évènements et je ne peux pas faire cela sur une requête en dur.
Mais lorsque j'écris cela dans un état, apparait alors:
erreur d'exécution 2455:
la référence d'une expression à la propriété Form/Report n'est pas valide.

J'ai essayé de l'écrire de toute beaucoup de façon mais le même message revient toujours :'(
J'ai essayé:
Lorsque j'éris ça, la complétion se fait bien et je n'ai qu'à choisir mais j'ai toujours l'erreur à la fin!
Me.ss_form.Form.Recordsource = rq_source
[REPORTS]![Bordereau]![ss_form].Form!RecordSource = rq_source

J'ai essayé de transformer le ss_form en ss_état mais ça me dit la même chose, en mettant Report à la place de Form.
Et rq_source est un string contenant soit la requête en elle même, soit le nom du requête de la base.
Aidez-moi svp, merci

TBBUIM

2 réponses

Alain440 Messages postés 4 Date d'inscription jeudi 8 janvier 2004 Statut Membre Dernière intervention 16 janvier 2004
16 janv. 2004 à 17:12
Tu peux baser le recordsource sur une requête dont tu modifierais la propriété SQL (de l'objet Querydef ) en fonction de tes besoins

Tu peux aussi modifiers le recordsource en ouvrant le formulaire ou l'état en mode Design

OpenReport "MonEtat",acViewDesign

Modifier la propriété RecordSource
Recordsource = chaineSQL

'Fermer et enregistrer l'état

acSaveYes pour valider l'enregistrement de l'état
DoCmd.Close acReport, "MonEtat", acSaveYes

Alain
3
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
9 avril 2004 à 10:07
Ouais effectivement la meilleure façon de faire est d'ouvrir l'état en mode création. Car autrement c'est impossible!
TBBUIM
0
Rejoignez-nous