Bonjour,
Je suis toute nouvelle sur ce site même si je le consulte assez régulièrement pour trouver une solution lorsque j'ai un problème.
Mais hélas aujourd'hui je suis dans une impasse.
Cela fait 15 jours que j'essaye de créer un état à partir d'un formulaire multicritère et je désespère.
Je me suis inspirée du Formulaire de recherche prêt à l'emploi 1-2 et 3ème partie (j'ai récupéré uniquement les fonctionnalités qui m'interressaient)
Tout se passe superbien pour la recherche multicritère (=> un grand merci).
Mais pour l'état dur dur....
En fait je voudrais imprimer les données que me donne la recherche multicritère .Ceux-ci sont dans une zone de liste.
Descriptif du problème:
Si je click sur le bouton imprimé qui se trouve dans mon formulaire , je reçois le message suivant Erreur de compilation: Utilisation incorrecte du mot clé Me.
(Function lf_GetSqlWhere() insérée à la fin du module recherche: strSQL = Me.lst_resultat.RowSource ). Hors ma zone de liste est bien nommée lst_resultat dans mon formulaire.
Voici la programmation:
Mon formulaire est basé sur une seule table (Archives).
J'ai un formulaire (frm_Recherche) ou je récupère tous les champs de la table à partir de la recherche multicritère.
et un état (Archives_par_équipement) où je vais rechercher tous les champs de la table
________________________________________________________________
J'ai créé la table tbl_TempLstRpt
Nom du champ Type Longueur
Table -Texte - 250 (donnée introduite: Archives)
Etat - Texte - 250 (donnée introduite: Archives_par_équipement)
La source (propriété RowSource) de l'état doit être la même que l'item de la liste cbo_table :tbl_TempLstTbl
Sur le formulaire , j'ai inséré le bouton de commande "imprime" pour ouvrir l'état.
Nom cmd_imprime
(Evènement) Sur clic [Procédure Evènementielle]
Légende de l'étiquette Imprime
Le Code
Dans l'événement Sur Clic du bouton de commande cmd_imprime Private SubJ'ai inséré le code suivant dans le module "Recherche" du formulaire.
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 cmd_imprime_Click() Dim rst As Recordset Dim strCriteria As String Set rst = CurrentDb.OpenRecordset("tbl_TempLstRpt", dbOpenSnapshot) ' recherche les informations de la table rst.FindFirst ("Table='" & Me.cbo_table & "'") If rst.NoMatch Then ' non trouvé MsgBox "Cette table ne possède pas d'état. " & _ "Veuillez renseigner la table des paramètres.", _ vbCritical + vbOKOnly, "formulaire de Recherche" Exit Sub Else ' trouvé DoCmd.OpenReport rst.Fields("Etat"), acViewPreview, , lf_GetSqlWhere End If Set rst = Nothing End Sub
Si quelqu'un peut m'aider ce serait super,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Function lf_GetSqlWhere() Dim strWhere As String Dim strSQL As String strSQL = Me.lst_resultat.RowSource ' récupère à partir des doubles paranthèses strWhere = Right(strSQL, Len(strSQL) - InStrRev(strSQL, "((")) ' supprime les caractères inutile de la fin strWhere = Left(strWhere, Len(strWhere) - 2) 'on renvoi le résultat lf_GetSqlWhere = strWhere End Function
Merci d'avance
Partager