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

VBA Access Discussion :

Générer un fichier WORD à partir d'une série de formulaires


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Médecin/Statisticien
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 21
    Points
    21
    Par défaut Générer un fichier WORD à partir d'une série de formulaires
    Bonjour et bonne année à tous !

    Voici mon problème :

    - La base Access stocke les informations de "cas" dont les informations sont dispatchées dans différentes tables de données et différents formulaires, car la quantité de données dépasse les capacités des tables et des formulaires Access.

    - Je voudrais générer un fichier Word pour un "cas" donné, depuis Access, de façon "Quick and Dirty" (très peu de contrainte concernant la mise en forme du fichier Word)


    Après avoir parcouru la FAQ et la forum, j'ai besoin d'être orienté vers la solution la plus simple (et rapide) et la plus souple avant de me lancer. Faut-il passer par la création d'Etats et ensuite les envoyer vers le fichier Word ? Peut-on au contraire directement ouvrir les formulaires et copier/coller les contrôles dans le fichier Word ?

    Merci par avance !

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Pourrais-tu poster une copie d'écran de "cas" histoire de voir comment cela se présente.

    À priori, j'irai vers un état avec une conversion en Word (note que le résultat et généralement assez laid).
    L'avantage de l'état est la réutilisation. Si tous tes cas sont sur le même modèle, une fois l'état défini tu peux t'en resservir pour un cas différent.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Médecin/Statisticien
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Bonjour Marot ! Merci pour ton attention.

    Voici des captures d'écran qui vaudront un long discours. Chaque "cas" correspond à un individu. Pour chaque individu on récupère des informations concernant tous ses organes (entre autre). La quantité d'information fait qu'on a été obligé de répartir les informations dans plusieurs tables et plusieurs formulaires du fait des limitations d'Access.

    Nom : organes.png
Affichages : 404
Taille : 202,9 Ko

    Nom : poumon.png
Affichages : 467
Taille : 189,9 Ko


    Mon but est de produire une synthèse en Word faisant un récapitulatif de toutes les données de chaque cas.

    Une solution est de faire des états pour chaque formulaire, puis de les imprimer. Mais ça parait assez lourd à faire et surtout pour un résultat peu synthétique. La solution que je voudrais explorer consisterait à l'aide d'une procédure VBA à ouvrir tous les formulaires et copier-coller les controles activés (mes formulaires désactives automatiquement les champs inutiles).

    Avec ces nouvelles infos, quel est ton avis ? Merci !

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Je ne sais pas trop à qui ta synthèse devrait ressembler mais je pense que l'état (avec un sous-état par "Formulaire") est la solution la plus simple.
    Le copier coller est "fragile" et ne prend pas toujours ce à quoi on s'attend.

    Et transformer une série de formulaires et états est assez facile en fait.

    1. Tu ouvres ton formulaire en mode "conception".
    2. Tu sélectionnes tous les champs et tu fais un copier.
    3. Tu ouvres un état tu y copie tous les contrôles.
    4. Tu sauvegardes l'état.


    Il faut bien sur spécifier la même source que le formulaire.

    On peut surement écrire du code VBA qui fait cela si tu as beaucoup de formulaires.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Médecin/Statisticien
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Merci Marot je vais explorer cette voie : produire des états via un programme VBA

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Je pensais plutôt créer des états à partir de formulaires avec du VBA.

    Une étape faite une fois uniquement.

    Combien de formulaires de consultations as-tu actuellement ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Médecin/Statisticien
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    En tout, il y a une vingtaine de formulaires.

    Je pense qu'on s'était bien compris la première fois : créer des Etats à l'aide d'une procédure VBA et ensuite les imprimés.

    Mais je bloque sur un point : les Etats sont crées à partir des tables de données et pas des formulaires. Comme tu as pu le remarqué j'ai des formulaires qui contiennent des listes de choix (plein, en fait) et les données des listes de choix sont stockées sous forme d'Integer.... donc l'état affiche des chiffres au lieu d'afficher l'intitulé du choix. Pas très pratique pour avoir une vue d'ensemble du cas , et je ne vois pas comment faire autrement

    Par contre en cherchant des infos sur l'impression des Etats je suis tombé sur deux choses intéressantes :

    - PDF Creator qui remplace l'imprimante par la génération d'un fichier PDF

    - la méthode DoCmd.PrintOut qui permet d'imprimer un formulaire

    Ca me permettrait d'ouvrir mes formulaires un par un et de les imprimer dans un fichier PDF je pense. Je testerai ça demain !

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    oui si tu pars de rien, il te faut bâtir tes rapports à partir des données de base mais si

    1. Tu ouvres ton formulaire en mode "conception".
    2. Tu sélectionnes tous les champs et tu fais un copier.
    3. Tu ouvres un état vierge tu y copies tous les contrôles.
    4. Tu sauvegardes l'état.


    Tu viens de créer un état qui est une copie de ton formulaire et que se comporte grosso-modo comme ton formulaire.

    Pour une vingtaine, je me risquerai à la main. Mettre au point du VBA qui fait cela pour toi me parait plus long et complexe que de le faire manuellement.

    L'impression de formulaire ne donne généralement pas des résultats géniaux.
    Access ayant tendance à imprimer TOUTES les données disponibles.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Médecin/Statisticien
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Médecin/Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 21
    Points
    21
    Par défaut
    Merci d'insister je n'avais pas compris la première fois

    Ca à l'air de très bien marcher ! Je vais voir ce que donne les contrôles "onglets" que j'ai sur mes formulaires pour l'export/impression/whatever des Etats que je vais créer à la main selon la méthode que tu m'indiques.

    Encore merci ! A Bientôt

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Pour les onglets, je ne sais pas car je ne l'ai jamais fait.

    Je pense qu'il faudra copier les contrôles de chaque onglet individuellement, les un en dessous des autres.

    un truc du genre :

    Texte de l'onglet1

    Controle1
    Controle2
    Controle3

    Texte de l'onglet2

    Controle5
    Controle6
    Controle7

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Générer un fichier XML à partir d'une vue ?
    Par trailx dans le forum PL/SQL
    Réponses: 0
    Dernier message: 08/09/2008, 20h12
  2. Enregistrement d'un fichier Word à partir d'une macro excel
    Par GTBouli dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/04/2008, 12h19
  3. [FPDF] Générer deux fichiers PDF à partir d'une classe
    Par doreen07 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 31/10/2007, 11h17
  4. Réponses: 1
    Dernier message: 02/04/2007, 11h23
  5. Réponses: 4
    Dernier message: 02/05/2005, 20h25

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