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 :

Stockage anticipé du nom de fichier.pdf de l'état qu'on ouvre à partir d'un formulaire [AC-2016]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut Stockage anticipé du nom de fichier.pdf de l'état qu'on ouvre à partir d'un formulaire
    Bonsoir à tous. Pour ceux à qui la lecture de mon intitulé donne déjà des maux de tête, je m'explique.
    J'ai un état "Feuille de route" qui lorsque je l'ouvre, filtre plusieurs tables afin de n'afficher qu'une vue regroupant les informations d'un enregistrement (Nom d'une personne) que je saisis à l'ouverture de l'état.
    => La source des données est une requête SQL dans laquelle je saisis l'enregistrement de la table à partir duquel je souhaite réaliser une vue.

    Ce que je souhaite, c'est de créer un fichier PDF de cet état et j'aimerais lui donner un nom faisant référence à l'enregistrement à partir duquel il est réalisé.
    Hors, j'appelle l'état à partir d'un autre formulaire et j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim Nom, Fichier As String
    Nom = InputBox("Nom du personnel ?")
    Fichier = "E:\Temp\FDR_" & Nom & ".pdf"
     
    DoCmd.OutputTo acOutputReport, "Feuille de route", acFormatPDF, Fichier, , , , acExportQualityPrint
    Exit Sub
    Mais voila mon soucis c'est que lorsque mon état s'ouvre, ce dernier ne sait pas encore le nom de la personne à partir de laquelle je vais réaliser une vue et donc je dois saisir deux fois le nom de cette personne.
    La première fois pour pouvoir nommer le fichier pdf qui sera généré et la deuxième lorsque j'ouvre l'état.

    J'ai essayé de mettre le nom de la personne dans une variable globale, de récupérer le nom de la personne appelée dans l'état depuis le formulaire à partir duquel l'état est lancé, mais je n'y parviens pas...
    Est-ce que quelqu'un aurait une idée pour m'éviter cette double saisie ?
    Faut il que je passe par une variable globale, dois-je piloter l'ouverture de l'état depuis le formulaire afin de spécifier le nom à partir duquel l'état doit être généré, faut il au contraire que je récupère le nom recherché par l'état dans le formulaire, y a t'il une façon de réaliser ce que je souhaite ?

    En vous remerciant par avance de me faire économiser de l'aspirine.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 687
    Points : 14 688
    Points
    14 688
    Par défaut
    bonsoir,
    Mais voila mon soucis c'est que lorsque mon état s'ouvre, ce dernier ne sait pas encore le nom de la personne à partir de laquelle je vais réaliser une vue et donc je dois saisir deux fois le nom de cette personne.
    ce ne sera pas le seul souci à mon avis: il est très risqué de sélectionner un enregistrement à partir d'un InputBox vu le risque d'erreur de saisie que cela peut générer.
    En général, il est d'usage de passer par un formulaire contenant une liste déroulante ou un formulaire continus qui, après sélection de l'enregistrement, va ouvrir l'état et créer le fichier pdf.

    Il est aussi d'usage d'utiliser l'identifiant unique plutôt que le nom (qui peut ne pas être unique).
    On peut ouvrir un état en utilisant le 4è paramètre (WhereCondition) de la commande OpenReport en précisant l'identifiant unique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "Feuille de route", , , "Id=" & Me.Identifiant, acViewPreview
    pou le nom du fichier, il suffit de récupérer le nom dans une des colonnes de la liste déroulante ou dans le contrôle du formulaire contenant le nom:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Fichier = "E:\Temp\FDR_" & Me.Nom & ".pdf"    ' si on utilise une colonne d'un formulaire continus
    Fichier = "E:\Temp\FDR_" & Me.ListeNoms.Column(1) & ".pdf"    'si on utilise une liste déroulante et que le nom se trouve dans la 2ème colonne
     
    DoCmd.OutputTo acOutputReport, "Feuille de route", acFormatPDF, Fichier, , , , acExportQualityPrint
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut J'y suis presque
    Merci beaucoup tee_grandbois !

    J'ai suivi tes conseils, j'ai inséré une zone de liste sur le formulaire appelant à partir duquel je sélectionne le nom de la personne dont je veux produire un état.
    Cette zone de liste de 2 colonnes contient les "noms" ainsi qu'un numéro unique (N° amicaliste).
    Lorsque l’état est sauvegardé en pdf après ouverture le nom du fichier correspond bien au nom sélectionné (colonne 1 de ma zone de liste).
    Malheureusement je n'arrive pas à ouvrir l'état sur l'enregistrement souhaité (malgré l'information donné par la colonne 0) de ma zone de liste qui contient bien un numéro unique (N° amicaliste).
    J'obtiens une erreur 3071 syntaxe incorrecte ou trop complexe ! C'est véritablement frustrant car je ne dois pas être loin...

    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
     
     
    Private Sub Export_PDF_sur_Clef_de_la_feuille_de_route_complète_Click()
    Dim Fichier As String
    Fichier = "E:\Temp\FDR_Complète_" & [Nom du personnel].Column(1) & ".pdf"
     
    On Error GoTo GestionErreur
     
    DoCmd.OpenReport "Feuille de route complète", acViewPreview, , "[N° Amicaliste]=" & Me.[Nom du personnel].Column(0)
    DoCmd.OutputTo acOutputReport, "Feuille de route complète", acFormatPDF, Fichier, , , , acExportQualityPrint
    DoCmd.Close acReport, "Feuille de route complète", acSaveNo
     
    Exit Sub
     
    GestionErreur:
    recup_error Err.Number
    If Not blnErrorStatus Then
       Err.Clear
       Resume Next
    End If
     
     
    End Sub

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 687
    Points : 14 688
    Points
    14 688
    Par défaut
    bonsoir,
    il faudrait poster la requête de l'état et confirmer que [N° Amicaliste] est bien de type numérique ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut Bingo !
    Après une après midi de galère, c'était bien LA SOLUTION !
    Je requettais sur des champs texte.... J'ai donc crée un nouveau champ index dans ma table maitresse et je peux donc ouvrir mes états sur l'enregistrement désiré.
    YES.

    Merci beaucoup à toi tee-grandbois !

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 687
    Points : 14 688
    Points
    14 688
    Par défaut
    Citation Envoyé par Stéphane Olivier BERNARD Voir le message
    Bonsoir,
    J'imaginais que ce qu'il fallait c'est que le champs utilisé soit unique, c'est bine le cas et c'est une clef primaire de table mais malheureusement, c'est un texte court de 15 caractères...
    Donc si je te comprend bien il faut que je crée un nouveau champs dans cette table, genre NUMAUTO et que je l'utilise plutôt que mon N° d'amicaliste.
    Ok, je vais essayer çà ! Merci ...
    pas nécessairement, quoique conseillé.
    Si c'est du texte, il faut juste ajouter des apostrophes ou doubler des guillemets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.OpenReport "Feuille de route complète", acViewPreview, , "[N° Amicaliste]='" & Me.[Nom du personnel].Column(0) & "'"
    ' ou
    DoCmd.OpenReport "Feuille de route complète", acViewPreview, , "[N° Amicaliste]=""" & Me.[Nom du personnel].Column(0) & """"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/07/2013, 11h38
  2. Réponses: 2
    Dernier message: 07/10/2012, 01h18
  3. [AC-2007] le Nom du fichier PDF comporte une incrémentation
    Par Pittouti dans le forum IHM
    Réponses: 1
    Dernier message: 12/06/2012, 15h22
  4. récuperer les noms de fichiers pdf, word, Txt
    Par hervé_débutant dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/08/2007, 11h36
  5. Nom de fichier PDF Creator
    Par le_parrain dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/02/2005, 18h11

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