Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 26/01/2011, 11h51   #1
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Par défaut Problème ouverture d'état grâce à formulaire

Bonjour,

Voila mon problème :
J'aimerai ouvrir un état en filtrant les données grâce à un formulaire.
J'ai créer un formulaire avec une liste (Liste_nom) où l'on peut choisir un nom qui permettrait de filtrer les données de l'état, en n'affichant que les données qui correspondent à ce nom. Et un bouton qui permet d'ouvrir l'état.

Le problème c'est que quand je clic sur le bouton il me met le message d'erreur suivant :"Type de données incompatible dans l'expression du critère"
Le code SQL associé au bouton est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Ouvrir_état_Click()
On Error GoTo Err_Ouvrir_état_Click
 
    Dim stDocName As String
 
    stDocName = "Bloc"
    DoCmd.OpenReport stDocName, acPreview, , "Nom =" & Me.Liste_nom.Value
 
Exit_Ouvrir_état_Click:
    Exit Sub
 
Err_Ouvrir_état_Click:
    MsgBox Err.Description
    Resume Exit_Ouvrir_état_Click
 
End Sub
Pouvez vous m'aider à résoudre ce problème.
Merci beaucoup à tous
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 12h47   #2
Nouveau Membre du Club
 
Stéphane
Formateur en informatique
Inscription : janvier 2011
Messages : 30
Détails du profil
Informations personnelles :
Nom : Stéphane

Informations professionnelles :
Activité : Formateur en informatique

Informations forums :
Inscription : janvier 2011
Messages : 30
Points : 25
Points : 25
Bonjour,

peut être avec cette syntaxe ... si [Nom] est présent dans ton Etat

Code :
DoCmd.OpenReport stDocName, acPreview, , "[Nom] =" & Me.[Liste_nom]
Cordialement
Stef999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 14h08   #3
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Merci Stef pour ta réponse.

Malheureusement ça ne marche pas non plus, j'ai toujours le même message d'erreur.
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 14h39   #4
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
Je te propose une solution qui te permet d'ouvrir ton Etat a partir de ton formulaire à l'aide d'un bouton :
Tu met ce code dans "sur clic" du bouton :

Code :
DoCmd.OpenReport "NomdeTonEtat", acPreview, , "[TonChamp] = " & Me.TonChamp
Et "sur ouverture" de ton Etat, tu met ce code :

Code :
Me.RecordSource = Forms.Item("NomdeTonFormulaire").RecordSource
Kisty10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 14h59   #5
Nouveau Membre du Club
 
Stéphane
Formateur en informatique
Inscription : janvier 2011
Messages : 30
Détails du profil
Informations personnelles :
Nom : Stéphane

Informations professionnelles :
Activité : Formateur en informatique

Informations forums :
Inscription : janvier 2011
Messages : 30
Points : 25
Points : 25
Re,

Pardon je n'avais pas testé la technique ...

D'habitude pour filtrer un Etat par rapport à une valeur contenue dans un contrôle de formulaire, je modifie la source de l'état (dans la feuille de propriété : onglet Données / Source) en cliquant sur le bouton "3 petits points", cela déclenche le générateur de requête ... dans cette requête j'y glisse les champs nécessaires à l'Etat, puis je définis le critère du champ à filtrer (dans ton cas le champ Nom) comme étant la valeur du contrôle du formulaire appelant (dans ton cas Liste_Nom). Pour définir ce critère le plus simple est d'appeler le générateur d'expression (bouton baguette magique) et dans celui ci de sélectionner ton formulaire et dans ce formulaire le champ dont la valeur servira de critère ... pour au final récurer un critère du genre [Formulaires]![NomdeTonFormulaire]![NomDuControleQuiSertDeCritère].
Là ça marche ! C'est certain !
Stef999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 15h40   #6
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Merci à vous 2.

J'ai essayé les 2 solutions et je n'ai plus le message d'erreur mais l'état qui s'ouvre est vide

Avec la solution de Kisty j'ai des "#Nom ?" à la place des valeurs, et avec la solution de Stef je n'ai rien du tout.
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 16h23   #7
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
Pour moi ça marche bien.
Est ce que ton Etat et ton Formulaire ont la même source?
Kisty10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 16h58   #8
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Eu non je crois pas. Mon Etat a comme source une requête (Etat Bloc), et la liste de mon formulaire va chercher le champ "nom" dans une table (Exploitation).
Ça pose problème? Parce que dans la requête il y a aussi le champ "nom" provenant de la table Exploitation.
Parce que si je met en source de ma liste le champ "nom" de la requête 'Etat Bloc' ça marche pas : il y a plusieurs entrée pour chaque nom donc les noms apparaisse plusieurs fois dans la liste et c'est pas top.

Ah et si j'ouvre l'état directement sans passer par le formulaire il me dit qu'il ne trouve pas le formulaire auquel je fait référence, c'est normal?

Le code que j'ai mis "sur ouverture" de mon état: (Etat_bloc c'est le nom de mon formulaire)
Code :
1
2
3
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Forms.Item("Etat_bloc").RecordSource
End Sub
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 17h30   #9
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
Citation:
Ah et si j'ouvre l'état directement sans passer par le formulaire il me dit qu'il ne trouve pas le formulaire auquel je fait référence, c'est normal?
Oui c'est normal parce que t'as mis le code "sur ouverture" de ton Etat, il est lié avec ton formulaire.
Si tu veux ouvrir ton état sans passer par le formulaire alors met ton code entre commentaire et ouvre l'etat
Kisty10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 17h36   #10
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Citation:
Envoyé par Kisty10 Voir le message
Oui c'est normal parce que t'as mis le code "sur ouverture" de ton Etat, il est lié avec ton formulaire.
Si tu veux ouvrir ton état sans passer par le formulaire alors met ton code entre commentaire et ouvre l'etat
Ah okay merci.

Et tu n'as pas de solution pour que mon Etat ne soit pas vide quand je l'ouvre avec le formulaire?
C'est à cause de l'histoire des sources?
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 17h43   #11
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
oui, il faut que le formulaire et l'Etat ont la même source
Kisty10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 09h46   #12
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Quand tu dis qu'il faut qu'ils aient la même source, tu veux bien dire que "Origine Source" de la liste de mon formulaire doit être la même requête que la "Source" de mon Etat??

Parce que j'ai essayé et ça ne marche pas non plus, j'ai toujours un Etat vide avec des "#Nom ?"
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 10h16   #13
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
Pour que je puisse comprendre pour quoi ton Etat est toujours Vide, envoie moi ta base avec l'Etat et le formulaire en format .rar ou .zip
Kisty10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 14h22   #14
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Eu désolé pour la question bête mais c'est possible d'envoyer un document joint par MP???
Sinon tu peux m'envoyer ton adresse mail par MP stp?
Merci
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 14h42   #15
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
C'est fait, consulte tes MP
@+
Kisty10 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/01/2011, 15h03   #16
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
Voila je te l'ai envoyée par mail.
Merci
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 18h00   #17
Invité de passage
 
Ophé
Inscription : septembre 2010
Messages : 27
Détails du profil
Informations personnelles :
Nom : Ophé

Informations forums :
Inscription : septembre 2010
Messages : 27
Points : 1
Points : 1
C'est bon, problème résolu !
Merci Kisty
satane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 18h04   #18
Nouveau Membre du Club
 
Homme
Inscription : décembre 2010
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : décembre 2010
Messages : 115
Points : 38
Points : 38
Envoyer un message via MSN à Kisty10
You are welcome
Kisty10 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 04h28.


 
 
 
 
Partenaires

Hébergement Web