Bonjour,

Je planche sur un problème depuis plusieurs heures et je ne trouve pas la solution sur le forum ou sur la FAQ...

J'ai un formulaire : frmOrdoSuiviLivraison qui contient un état : rptOrdoSuiviLivraison.

Le formulaire contient des cases à cocher et selon le choix, la source de l'état change.
ex : si case "Atelier" cochée : Me.rptOrdoSuiviLivraison.SourceObject = État.srptOrdoSuiviLivraisonAtelier

Enfin j'ai un liste déroulante cboChoixClient. Je souhaiterais appliquer un filtre après mis à jour de cette liste.

Pour le code de ce filtre je souhaiterais un même code qui fonctionne quel que soit la source de l'état.
J'ai pensé à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
 
    strSQL = ...
    strFiltre = ...
 
    strSourceEtat = Me.rptOrdoSuiviLivraison.SourceObject
    strNomEtat = Mid(strSourceEtat, 6)
    strNomEtatVB = "Report_" & strNomEtat
 
    'je vide la source objet pour pouvoir ouvrir l'état en mode design
    Me.rptOrdoSuiviLivraison.SourceObject = ""
 
   'jusque là tout va bien mais ensuite je n'arrive pas à utiliser une variable dans le nom de l'état
 
    'on ouvre l'état en mode Design+Caché pour effectuer les modifications, on sauvegarde, on le ferme et on le réouvre
    'DoCmd.OpenReport strNomEtat, acViewDesign, , , acHidden
    'j'effectue les modifs sur l'état et je change le recordsource
    strNomEtat.lblTitre.Caption = "OK"
    strNomEtat.RecordSource = strSQL & strFiltre
    'strNomEtatVB.Report.RecordSource = strSQL & strFiltre
    'DoCmd.Save acReport, strNomEtat
    'DoCmd.Close acReport, strNomEtat
    'Me.rptOrdoSuiviLivraison.SourceObject = strSourceEtat
    Me.Requery
    Me.Refresh
Quelle que soit la variable que j'utilise pour remplacer le nom de l'état je n'obtiens que des erreurs.
Pourriez vous m'indiquer la synthaxe à utiliser?

Je vous remercie,

Anthony