Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/04/2011, 09h36   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 47
Points : 10
Points : 10
Par défaut Filtre sur un état

Bonjour,

Je fais appel à vous car je ne vois pas la fin de mon problème...

Petite explication :
Je souhaiterais imprimer via un état une liste d'information (un simple tableau) mais sur lequel je souhaietrais mettre un filtre.
Pour cela, j'ai créé dans un premier temps un formulaire avec une liste déroulante qui contient des noms de services. Lorsque je séléctionne mon service, sur la modification de la liste, je dois ouvrir mon état (apreçu avant impression) avec toutes les informations qui ne concernent uniquement le service que j'ai séléctionné.
Mon état est basé sur une requête.

Voici le petit morceau de code en lien avec l'ouverture de l'état :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub lst_serviceI_Change()
 
On Error GoTo lst_serviceI_Change_Err
    MsgBox Me.lst_serviceI.Value
 
    DoCmd.OpenReport "et_action_impression", acViewPreview, , [États]![et_action_impression]![r_Service_Demandeur_nom_Service] = [Formulaires]![frm_liste_service_impacte]![lst_serviceI], acNormal
 
lst_serviceI_Change_Exit:
    Exit Sub
 
lst_serviceI_Change_Err:
    MsgBox Error$
    Resume lst_serviceI_Change_Exit
 
End Sub
Alors pour le moment, je suis au stade des tests mais je n'arrive même pas à faire un filtre sur mon état :-(
Je pense que dans le futur, le filtre sera plus complexe et sera une requête mais je n'ai jamais réalisé de telles choses et ce que j'ai pu lire ne m'a pas suffisament aidé.

Est ce que vous auriez des pistes deja au niveau de la syntaxe lorsqu'on utilise une requête pour filtrer un état ? Ou même un exemple !

Merci à tous
cindy6311 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 10h03   #2
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 279
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 279
Points : 478
Points : 478
A priori, en analysant juste ton code, deux erreurs fatales :
1. tu écris en français("Etats" et "Formulaires!", alors qu'en VBA, tu dois écrire en anglais : Forms!
2. Tu fais référence à un élément de l'état lui-même dans la condition Where
Code :
[États]![et_action_impression]![r_Service_Demandeur_nom_Service]
alors que tu dois faire référence à la source de l'état. Si ton état a pour source une requête, tu dois simplement indiquer le nom de la requête suivi du nom du champ, voire le nom du champ directement. Quelque chose du genre :
Code :
DoCmd.OpenReport "et_action_impression", acViewPreview, , [Nom_de_requête_source]![r_Service_Demandeur_nom_Service] = Forms![frm_liste_service_impacte]![lst_serviceI], acNormal
Bon travail!
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 10h19   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 47
Points : 10
Points : 10
Merci beaucoup pour la rapidité

Seulement, petit soucis, ca ne fonctionne pas ! J'ai le emssage d'erreur suivant : "Impossible de trouver le champ "l" auquel il est fait référence dans votre expression"
Hummmmm je ne comprend pas :-(

Est ce qu'il ne serait pas possible de faire une requête pour filtrer directement du genre
Code :
1
2
3
select * 
from maPremirerRequete 
where [Nom_de_requête_source]![r_Service_Demandeur_nom_Service] = Forms![frm_liste_service_impacte]![lst_serviceI]
C'est très grossier et la syntaxe n'est pas bonne mais est ce que ca semble possible ? et comment je renseigne cela dans la ligne d'ouverture de l'état ?

Merci beaucoup
cindy6311 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 11h36   #4
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 47
Points : 10
Points : 10
Problème résolu !!!

Voici la réponse si jamais ca arrive à quelqu'un !
Presque une histoire de quote Pffff

Code :
DoCmd.OpenReport "et_action_impression", acViewPreview, , "[r_Service_Demandeur_nom_Service] = " & " [Forms]![frm_liste_service_impacte]![lst_serviceI]", acNormal
cindy6311 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h46.


 
 
 
 
Partenaires

Hébergement Web