Bonjour,
J'ai incéré dans ma Rqt [Forms]![mon_formulaire]![zone_recherche] pour afficher un état après la sélection dans la liste déroulante le type de produit.
Mais l'état s'affiche avec 0 résultat
Merci pour l'aide
Bonjour,
J'ai incéré dans ma Rqt [Forms]![mon_formulaire]![zone_recherche] pour afficher un état après la sélection dans la liste déroulante le type de produit.
Mais l'état s'affiche avec 0 résultat
Merci pour l'aide
Bonjour chobra2000,
Des valeurs sont-elles bien chargées dans ta liste déroulante?
Si c'est le cas, Le mieux c'est d'appeler ton rapport est sur l'événement Change de ta liste déroulante avec comme critère dans l'appel de ton rapport, l'identifiant de la ligne courante dans la liste déroulante
On obtient alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part Me.lstMaListe.Value
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub lstMaListe_Change() On Error Resume Next '----> Pour éviter le mode debug car si monRapport n'est pas ouvert la ligne suivante provoquera une erreur DoCmd.Close acReport, "monRapport" DoCmd.OpenReport "monRapport", acViewPreview, , "monChampsCritere = " & Me.lstMaListe.Value End Sub
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
Salut informer,
J'ai testé le code mais le résultat est toujours 0
Merci et bonne journée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub RechType_Change() '---->Nom de l'Etat TypePrestataire '---->Variable liste déroulante RechType '---->Champs critère TypeFournisseur On Error Resume Next DoCmd.Close acReport, "TypePrestataire" DoCmd.OpenReport "TypePrestataire", acViewPreview, , "TypeFournisseur = " & Me.RechType.Value End Sub
Quelle est la source de ton rapport :
- Table
- Requête
Dans mon exemple c'est une requête stockée
ATTENTION
Si TypeFournisseur est de type STRING alors il faut entourer Me.RechType.Value de simple quote comme pour toute requête SQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2TypeFournisseur = '" & Me.RechType.Value & "' "
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
La source de l'état est une Requête stockée.
TypeFournisseur n'est de type STRING
Peux tu donner au moins un enregistrement quand tu lances la requête associée au rapport sans le filtrage (champs + valeurs) ?
Peux-tu mettre un point d'arrêt sur la commande
pour connaitre la valeur de Me.RechType.Value
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.OpenReport "TypePrestataire", acViewPreview, , "TypeFournisseur = " & Me.RechType.Value
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
Voici le contenu de la requête avec le nom des champs
[B]Type Fournisseur NomFournisseur totalligne Client
Jouvial Swapnatheeram 350 Annie
Hotel Inde Spencer's home 180 Annie
Jouvial Deshadan Montain Resort 260 Annie
Jouvial Backwater Farm House 200 Annie
Hotel Inde Spencer's home 400 Nameste
Hotel Népal Sunil Bus 142 Karine
Hotel Népal Apsara Boutiq Hotel 156 Sylvie
Hotel Népal End of Univers 530 Sylvie
Peux-tu mettre un point d'arrêt sur la commande, Je ne comprends pas ta demande?
pour connaitre la valeur de Me.RechType.Value, c'est Type Fournisseur (voir 1er colonne)
Bonjour. Si la table TypePrestataire a une ID NuméroAuto alors c'est à ce niveau que vous devez placer le critère de la requête.
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Salut,
Si je puis interférer
Créer un module dans ta bdd avec :
Dans l'état concerné, insérer le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Option Compare Database Option Explicit Function EstChargé(ByVal strNomForm As String) As Boolean Const conÉtatObjFermé = 0 Const conModeCréation = 0 If SysCmd(acSysCmdGetObjectState, acForm, strNomForm) <> conÉtatObjFermé Then If Forms(strNomForm).CurrentView <> conModeCréation Then EstChargé = True End If End If End Function
Dans le formulaire concerné :
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 Option Compare Database Option Explicit Public blnOuverture As Boolean Private Sub Report_Close() Dim strNomDoc As String strNomDoc = "Etat TypePrestataire" '<-- nom du formulaire d'appel ouverture de ton état DoCmd.CLOSE acForm, strNomDoc End Sub Private Sub Report_NoData(Cancel As Integer) Dim strMsg As String, strTitre As String Dim intStyle As Integer strMsg = "Pas de résultat avec les citères requis." intStyle = vbOKOnly strTitre = "Pas de données pour cette plage de valeurs" MsgBox strMsg, intStyle, strTitre Cancel = True End Sub Private Sub Report_Open(Cancel As Integer) Dim strNomDoc As String strNomDoc = "Etat TypePrestataire" '<-- nom du formulaire d'appel ouverture de ton état blnOuverture = True DoCmd.OpenForm strNomDoc, , , , , acDialog If EstChargé(strNomDoc) = False Then Cancel = True blnOuverture = False End Sub
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 Private Sub OK_Click() On Error GoTo Err_OK_Click Dim strMsg As String, strTitre As String Dim intStyle As Integer If Not Reports![Nom de l'état à ouvrir].blnOuverture Then err.Raise 0 Me.Visible = False Quitte_OK_Click: Exit Sub Err_OK_Click: strMsg = "Pour utiliser ce formulaire, vous devez ouvrir l'état Nom de l'état à ouvrir." intStyle = vbOKOnly strTitre = "Ouverture à partir de l'état" MsgBox strMsg, intStyle, strTitre Resume Quitte_OK_Click End Sub
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
En réalité si l'état n'affiche rien çà veut dire que la Requête ne lui fournit rien. Il faut donc d'abord voir le problème au niveau de la requête. Est-ce qu'elle produit le résultat lorsqu'on l'exécute hors de l'état? est-ce qu'elle voit la valeur du critère?
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Bonjour hyperion13 !
Merci pour votre réponse!
J'ai bien compris qu'il faut placer le 2e code dans l'état et le 3e code dans le formulaire, mais le premier ou dois-je le incérer!
Salut bertiny,
La requête fonctionne bien et donne un résultat exacte des enregistrements.
J'ai ajouté IDTypePrestataire dans la requête, et dans critères ([Formulaires]![Etat_TypePrestataire]![RechType])
Est ça marche
Merci
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Alors tu vas faire une chose simple pour voir si tout va bien. Etant sur le menu créer, tu cliques sur la requête puis tu cliques sur Etat, juste pour voir ce qui se passe.
Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
Oh là!! Que c'est bien de trouver la solution à un problème
Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!
Ta requête te renvoie
Peux tu mettre une virgule après chaque valeur de chaque colonne car pour l'enregistrement suivant je n'identifie pas le type.Type Fournisseur NomFournisseur totalligne Client
Jouvial Swapnatheeram 350 Annie
Hotel Inde Spencer's home 180 Annie
Type Fournisseur NomFournisseur totalligne Client
Jouvial Swapnatheeram 350 Annie
D'autre part, existe-il une table typePrestataire dans ta base. Si oui donne nous sa structure.
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
A l'appel du rapport tu as écrit
Mais si le critère est bien sur TypeFournisseur alors il faut écrire le même libellé que celui de la table qui est Type Fournisseur. Comme il y a un espace, il faut mettre entre crochets et comme c'est du Texte court, le critère doit être en simple quote d’où le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.OpenReport "TypePrestataire", acViewPreview, , "TypeFournisseur = " & Me.RechType.Value
Code : Sélectionner tout - Visualiser dans une fenêtre à part DoCmd.OpenReport "TypePrestataire", acViewPreview, , "[Type Fournisseur] = '" & Me.RechType.Value & "' "
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
Merci pour vos réponses j'ai trouvé la solution grâce à vos commentaire et code!!
Merci de cliquer sur un pouce vert pour les réponses qui t’ont aidé
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
Chobra2000, merci de nous faire partager ta solution.
Mal nommer un objet, c'est ajouter au malheur de ce monde, car le mensonge est justement la grande misère humaine, c'est pourquoi la grande tâche humaine correspondante sera de ne pas servir le mensonge
Poésie 44, n° 17 - Albert Camus
Mes réponses vous ont aidés, un clic sur leur pouce vert
Bonjour chez vous
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager