IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Arguments de la commande DoCmd.OpenReport


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut Arguments de la commande DoCmd.OpenReport
    EDIT : Mon ETAT est basé sur cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT DISTINCTROW *
    FROM CataloguePostProd LEFT JOIN (ParcVendu LEFT JOIN (IndicateurSoutien LEFT JOIN PriceListSan
     ON PriceListSan.Equipement = IndicateurSoutien.Sigle_Equipement) 
    ON ParcVendu.Sigle_Commercial = IndicateurSoutien.Sigle_Equipement) 
    ON ParcVendu.reference = CataloguePostprod.Reference
    WHERE ((" & strCriteria & "));
    Code du bouton qui ouvre l'Etat

    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 BTImprimer_Click()
    Dim stDocName As String
    Dim strCriteria As String
    
    strCriteria = [Formulaire]![FormulaireRecherche]![txt_critere]
    ' l'aide donne une syntaxe du genre  [nomchamp = ...]![Formulaire] mais je n'ai pas de nom de champ à mettre !
    stDocName = "TestRequeteEtat"
    DoCmd.OpenReport stDocName, acPreview, , strCriteria
    
    With Reports(stDocName)
            .OrderBy = Me.OrderBy
            .OrderByOn = True
            .FilterOn = True
    End With
    J'aimerais que l'état s'ouvre en fonction du critère (valeur tapé par l'utilisateur dans un autre formulaire).

    Comment faire ?

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,
    la syntaxe pour référer à un contrôle d'un formulaire ouvert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    forms!LeFormulaire.LeContrôle

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    D'accord, j'ai donc testé en mettant :

    strCriteria = [Formulaire]![FormulaireRecherche].[txt_critere]

    Et j'ai le message d'erreur suivant :

    "Erreur d'exécution '2465'

    Impossible de trouver le champ "Formulaire" auquel il fait référence dans votre expression"

    Vous avez peut-etre mal orthographié le nom du champ. "

    En ce qui concerne l'aide je dois contacter le revendeur du produit (rubrique inexistante)

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Formulaires, avec un "s"...

    En VBA, il n'est peut être pas inutile de privilégier l'anglais.

    Et comme tu n'as pas d'espace dans le nom du formulaire et celui du champ, tu peux te passer des [].

    strCriteria = Forms!FormulaireRecherche.txt_critere
    Domi2

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Il les met automatiquement

    j'ai Access97 je sais pas si ça change quelque chose.

    J'ai mis un "s" à formulaire.

    Il me dit donc maintenant : "Impossible de trouver le champ "FormulaireS"

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Le formulaire auquel tu fais références est bien ouvert ?

    Domi2

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Absolument !

    Le cheminement :

    Un formulaire de recherche : double-click dans la zone de liste, un formulaire "avant-etat" s'ouvre, c'est sur ce formulaire qu'il y a le bouton : "Afficher l'état". Et c'est sur le formulaire de recherche que je veux prendre la valeur...


    EDIT : Je teste en prenant la valeur du formulaire avant-etat

    Du progrès, des résultats s'affiche, mais il ne tient pas compte du strCriteria

    Le code du bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub BTImprimer_Click()
    Dim stDocName As String
    Dim strCriteria As String
     
    strCriteria = Me.Référence
     
    stDocName = "testRequeteEtat"
    DoCmd.OpenReport stDocName, acPreview, , strCriteria
     
    With Reports(stDocName)
            .OrderBy = Me.OrderBy
            .OrderByOn = True
            .FilterOn = True
    End With

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Si ton critère est dans une zone de liste, alors tu dois te référer à la colonne dans laquelle se trouve ton critère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!FormulaireRecherche.NomListe.Column(4)
    par exemple, si le critère se trouve dans la 5ème colonne (l'indice commence à 0).

    Et tu peux te passer de ta clause WHERE dans ta requête...

    Domi2

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Non, le critère est dans une zone de texte, le résultat s'affiche dans une zone de liste.

    Le formulaire qui s'affiche réaffiche les données dans des zones de texte.

    Me.Référence du Form Avant-Etat prend la valeur Référence de la zone de liste du FormRecherche.

    je sais pas si je suis assez précis.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub BTImprimer_Click()
    Dim stDocName As String
    Dim strCriteria As String
     
    strCriteria = Me.Référence
     
    stDocName = "testRequeteEtat"
    DoCmd.OpenReport stDocName, acPreview, , strCriteria
    J'arrive à ce que strcriteria prenne la valeur que je veux, mais ensuite l'Etat crée ne s'en préoccupe pas.

    L'Etat est basé sur une requete, peut-etre qu'il ne prend pas en compte d'autres paramètres.

    Y'a une commande "create Etat" ?

  11. #11
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    As-tu enlevé la clause WHERE de ta requête ?

    Tu n'en as pas besoin...

    Ensuite, tu dois définir ton critère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    stCriteria = "[NomChampRéférence]=" & Me.Référence
    DoCmd.OpenForm stDocName, , , stCriteria
    Ici, le critère est de type numérique.

    Si le critère est de type String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stCriteria = "[NomChampRéférence]=" & "'" & Me.Référence & "'"
    Domi2

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Euh la référence est de type texte

  13. #13
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    J'ai pas eu le temps de finir de compléter...

    Si le critère est de type String

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stCriteria = "[NomChampRéférence]=" & "'" & Me.Référence & "'"
    Domi2

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    C'est un Etat que je veux créer ne confonds pas.

    J'ai mis ton code, sa m'ouvre pdfcreator fin bref.

    Merci de ton soutien, je reprendrais ça lundi car je n'ai pas le droit d'emmener mon travail chez moi.

    Merci de m'avoir aidé !

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Private Sub BTImprimer_Click()
    Dim stDocName As String
    Dim strCriteria As String
     
     
     
    stDocName = "état1"
    strCriteria = "DonnéesTechniques.Reference = " & Me.Reference
    DoCmd.OpenReport stDocName, AcViewPreview , , strCriteria
    Donc voici le code que j'ai utilisé, le problème est qu'il y a #Nom? dans toutes les textbox. Donc l'Etat n'a pas pris en compte strCriteria

    Je pense qu'il faudrait modifier la requête source de l'Etat avec du VBA et afficher l'Etat ensuite.

    Est ce que ce serait une bonne solution ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Nouvelle tentative :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub BTImprimer_Click()
    Dim stDocName As String
    stDocName = "état1"
    DoCmd.OpenReport stDocName, acViewPreview, , "[testRequeteEtat] = " & txtRéférence
    txtréférence est la zone de texte ou s'affiche la référence dans le formulaire Avant-Etat
    Toujours le même #Nom? qui s'affiche.

  17. #17
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Sorry pour vendredi, j'ai effectivement fait un exemple avec un formulaire et non un état.

    Le nom de ton champ référence est un peux curieux. Ne s'agirait-il pas de DonnéesTechniques, tout simplement

    De plus, si ton critère est de type texte, tu dois utiliser la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stCriteria = "[DonnéesTechniques]=" & "'" & Me.Référence & "'"
    et non

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strCriteria = "DonnéesTechniques.Reference = " & Me.Reference
    Domi2

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    Y'a pas de soucis pour vendredi !

    Je m'étais trompé également en parlant de formulaire en début de post donc tu as suivi à partir de là.

    J'essai ton idée.

    Sa m'ouvre l'Etat mais toujours avec des #Nom? dans les textbox.


    Le WHERE de la requête source de l'Etat est peut-etre mal formulé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ((" & strCriteria & "));
    Je vais essayer de mettre forms!FormulaireAvantEtat!Référence.

    La syntaxe ne doit pas étre comme il faut mais on va voir.

  19. #19
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Re,

    Le WHERE de la requête source de l'Etat est peut-etre mal formulé ?
    Surtout, tu n'en as pas besoin...

    Vérifie simplement que ton état affiche correctement toutes les données...

    ensuite, quand tu l'ouvres avec un critère, seul l'enregistrement correspondant au critère est affiché.

    Domi2

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Points : 78
    Points
    78
    Par défaut
    j'ai trouvé une solution plus simple en allant chercher directement la valeur à partir du menu source contrôle de chaque zone de texte.

    Donc plus besoin de requête etc.

    Merci quand même de ton aide Domi2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commande DoCmd.OpenForm dans access
    Par pontoise dans le forum Access
    Réponses: 6
    Dernier message: 14/05/2013, 01h13
  2. Commande "DoCmd.OpenReport" sous VBA access
    Par nomade333 dans le forum IHM
    Réponses: 10
    Dernier message: 27/02/2010, 08h36
  3. la commande DoCmd.Close ne s'exucute plus
    Par Halima91 dans le forum VBA Access
    Réponses: 12
    Dernier message: 16/03/2007, 16h07
  4. Commande DoCmd.RunSQL STRSql
    Par Didier Piron dans le forum Access
    Réponses: 4
    Dernier message: 22/11/2006, 19h16
  5. DoCmd.OpenReport. Le rapport ne s'ouvre pas.
    Par lapin_hobbit dans le forum Access
    Réponses: 2
    Dernier message: 07/07/2006, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo