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 :

Impression multiple d'un état à un paramètre [AC-2010]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut Impression multiple d'un état à un paramètre
    Bonjour,

    J'ai un formulaire qui a comme champ "Nom du responsable" et "Commande client". Tous les deux sont des menus déroulants.

    Une fois que je sélectionne le nom du responsable, je peux sélectionner les commandes clients affectés au responsable par le biais du menu déroulant
    Une petite image pour que ce soit plus clair :
    Nom : impression.jpg
Affichages : 195
Taille : 23,0 Ko

    Une fois que la commande client est sélectionnée, les données relatives à la commande client apparaissent, que je peux imprimer via le bouton d'impression qui m'ouvre l'état "E_Impression" qui a comme paramètre "Commande Client".
    Tout cela marche très bien si je veux imprimer une commande client en particulier.

    Ce que j'aimerai faire, c'est par un autre bouton, imprimer tous les états du responsable sélectionné en même temps (ici donc, imprimer à la suite l'état "E_Impression" avec comme paramètre 2223001, puis 2223002, 22230042223007,2223009), au lieu de devoir aller sur les commandes clients les unes après les autres.

    Et là je sèche. Auriez vous une idée?

    Merci par avance

  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,

    Ne peux-tu pas simplement enregistrer une requête qui ramène les enregistrements qui concernent le responsable affiché dans le formulaire et lancer un état qui aurait cette requête comme source ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Je ne suis pas sûr de bien comprendre, l'idée ça serait d'afficher tous les enregistrements concernant chaque commande d'un responsable à la suite dans le formulaire ?
    Si c'est ça je ne peux pas, le formulaire est trop complexe (plusieurs sous-formulaires en mode différent)

  4. #4
    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
    Je ne suis pas sûr de bien comprendre, l'idée ça serait d'afficher tous les enregistrements concernant chaque commande d'un responsable à la suite dans le formulaire ?
    Non, simplement :

    - écrire une requête qui ramène les éléments utiles pour confectionner le nouvel état que tu souhaites (à construire) ;
    - pour sélectionner les enregistrements qui concernent ce responsable-là, tu mets comme critère dans cette requête la référence au responsable affiché dans ta zone de liste (Formulaires!LeNomDuFormulaire!LaZoneDeListe) ;
    - tu enregistres cette requête (c'est plus simple)* ;
    - cette requête (dont le contenu va donc varier chaque fois que tu choisis un responsable dans le formulaire), c'est la source de ton nouvel état ;
    - tu ajoutes dans ton formulaire, un bouton qui déclenche l'édition de ce nouvel état.

    Donc pour ce qui concerne ton formulaire, tu n'as qu'une modification mineure : l'ajout d'un bouton pour déclencher l'impression.

    * Au lieu d'enregistrer la requête, tu peux affecter son SQL comme source de l'état.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    D'accord merci je comprends mieux.
    C'est effectivement une possibilité mais l'état étant lui aussi assez complexe, je risque de passer énormément de temps à la création d'un nouvel état pour l'impression de plusieurs commandes simultanément sans garantie que le résultat obtenue soit bien celui désiré.

    N'y aurait-il pas moyen d'utiliser un code récupérant la liste, de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim oDb As DAO.Database
    Set oDb = CurrentDb
    Set oRst = oDb.OpenRecordset("SELECT CommandeClient FROM Table WHERE Responsable= Formulaires!LeNomDuFormulaire!LaZoneDeListe  "
    , dbOpenDynaset)
    Et ensuite de faire une boucle pour envoyer chaque élément de la liste récupéré en paramètre en utilisant quelque chose de genre ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.OpenReport "E_Impression", acViewPreviewn, Paramètre
    DoCmd.PrintOut acPages
    DoCmd.Close acReport, "E_Impression"
    Je ne sais pas comment m'y prendre pour inscrire le paramètre dans cette commande

  6. #6
    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
    Vérifie que tu as les bibliothèques suivantes :



    Et essaie ceci (adapte Me.LaZoneDeListe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub LeBouton_Click()
      Dim rst As Recordset
      Dim Parametre As String
      Set rst = CurrentDb.OpenRecordset(Me.LaZoneDeListe.RowSource)
      Do Until rst.EOF
       Parametre = rst(0)
       DoCmd.OpenReport "E_Impression", acViewNormal, Parametre
       DoCmd.Close acReport, "E_Impression"
       rst.MoveNext
      Loop
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Merci pour votre aide, la commande CurrentDb.OpenRecordset(Me.LaZoneDeListe.RowSource) ne fonctionnait pas, avec toujours l'erreur 1 paramètre attendu. Du coup j'ai été récupéré la requête et en modifiant la syntaxe au niveau de la dernière condition.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Private Sub Commande230_Click()
     
     Dim rst As Recordset
      Dim Parametre As String
      Set rst = CurrentDb.OpenRecordset("SELECT VBAK.[Doc vente] FROM PROJ INNER JOIN VBAK ON PROJ.CommandeClient = VBAK.[Doc vente] WHERE VBAK.Termine=False AND (VBAK.[Doc vente] Between 2221000 And 2229999) AND  PROJ.Responsable='" & Me.NomResponsable & "'", dbOpenDynaset)
      Do Until rst.EOF
       Parametre = rst(0)
       DoCmd.OpenReport "E_ImpressionTerme", acViewNormal, , "[Doc vente]= " & Parametre, acWindowNormal
       DoCmd.Close acReport, "E_ImpressionTerme"
       rst.MoveNext
      Loop
     
    End Sub
    J'arrive donc maintenant bien à récupérer la liste des commandes associées au responsable.
    Par contre je n'arrive toujours pas à l'envoyer en tant que paramètre de l'état car malgré "[Doc vente]= " & Parametre (doc vente est le paramètre de mon état), une fenêtre s'ouvre et me demande pour chaque élément de la liste
    "entrez une valeur du paramètre
    doc vente = "

    J'ai beau cherché dans tous les sens, je ne vois pas pourquoi il me redemande la valeur du paramètre. Une idée ?

  8. #8
    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
    Puisque [Doc vente] est de type numérique, modifie

    Dim Parametre As String Dim Parametre As long

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Ah effectivement j'avais pas fait attention. Mais ça ne résout toujours pas le problème :/
    En fait j'ai l'impression que le problème vient de mon état, parce que même si je mets une valeur fixe dans le paramètre (du genre [doc vente] = 2222222), il me demande la valeur du paramètre

  10. #10
    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
    Difficile de répondre sans connaître les détails de l'application.

    Si je me base sur ce que tu montrais dans ton billet 5,




    je m'attendais plutôt à une syntaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_ImpressionTerme", acViewNormal, Parametre

    Essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_ImpressionTerme", acViewNormal, 2222222

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    En fait la syntaxe de mon billet 5 n'est pas la bonne, j'ai vérifié par la suite et c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E_ImpressionTerme", acViewNormal, , "[Doc vente]= " & Parametre
    Je vais continuer à chercher, je suis convaincu que c'est une histoire de déclaration de paramètre dans l'état

  12. #12
    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
    Avant toute chose, vérifie que l'exploration du Recordset donne bien ce que tu attends, place l'instruction

    entre les lignes 7 et 8 de ton code.


    Une valeur Null par exemple expliquerait la réaction d'Access.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Oui j'obtiens bien le premier numéro de commande lié au responsable... donc ce qui cloche c'est bien l'appel du paramètre dans la fonction

  14. #14
    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
    Je ne peux plus rien pour toi sans voir ta BdD.

    Si tu peux la poster dans un format Access2000, je veux bien y jeter un œil

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    Merci, la base contenant des données sensibles il faut d'abord que je la refasse avec des données bidons et ça risque de me prendre un peu de temps. Je continue à regarder par moi même aujourd'hui et si d'ici ce soir je n'ai toujours pas trouvé de solution je t'enverrai la base

    Edit : C'est bon j'ai trouvé le problème : j'avais comme source de l'état des tables et des requêtes paramétrées, c'est ces requêtes qui posaient problèmes. En supprimant tous les paramètres la commande marche parfaitement !
    Merci pour votre aide en tout cas

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

Discussions similaires

  1. Impression multiple paramétrable
    Par Labinouse dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/06/2014, 16h20
  2. Pb impression graphique dans un état
    Par 306xshdi dans le forum Access
    Réponses: 2
    Dernier message: 11/09/2006, 07h30
  3. Impression (IE vs FF) : Peut-on paramétrer?
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2006, 21h46
  4. [Excel] Problème d'impression multiple et de form
    Par Istrella dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/01/2006, 15h28
  5. [CR8] Impression multiple
    Par Nout dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 23/02/2005, 14h50

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