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

Access Discussion :

Une application Access pour émettre et archiver des documents types Word


Sujet :

Access

  1. #1
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut Une application Access pour émettre et archiver des documents types Word
    Bonjour à toutes et tous,

    Je vous propose un tutoriel :
    Une application Access pour émettre et archiver des documents types Word
    Il permet d’illustrer l’interaction Access/Word avec un exemple concret. Il s’agit d’une application qui montre comment émettre à la demande un document personnalisé basé sur une collection de modèles types.
    Vos remarques et suggestions sont les bienvenues dans le fil de cette discussion.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Merci Claude j'ai trouvé cela intéressant et bien détaillé.

    À titre personnel, j'ai une application qui fait la même chose.

    Les limites que j'ai frappées sont :

    • Au max 255 champs puisque la source est une requête ou une table.
    • Parfois et sans raison apparente si on fusionne plusieurs enregistrements (pour produire plusieurs fois le même document pour diverses personnes) Word se croise complètemement les yeux sur la numérotation des paragraphes ou des puces.
    • Il est préférable de faire tous les calculs de substitution dans Access car le langage de programmation de fusion est réellement pourri et le debuggage des champs de fusion est assez difficile.
    • Changer la source de données des words peut être problématique.
    • J'ai eu une mauvaise surprise sur le formatage des nombres, parfois Access affiche 2.00 et Word imprime 1.999999999. Note : je travaille dans un environnement multilingues : français, anglais ce qui n'aide peut-être pas.
      Il est à la limite plus simple de formater les données et de les convertir en texte dans Access plustôt que d'utiliser les formats de Word.


    Une solution alternative que je n'ai pas utilisée est de remplir des "signet" directement dans le Word. En gros on ouvre le Word et on complète par programme VBA les signets insérer dans le texte. À mon avis cette solution permet de dépasser la limite de 255 champs.

    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
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Bonjour René,

    Content de te croiser ici et merci pour ton message.

    Au max 255 champs puisque la source est une requête ou une table
    Je n’ai pas été confronté à cette limite.
    En l’occurrence, j’opterais pour la solution « Avec signets » et autant de tables « tParametres_n » que nécessaires et boucler n fois dans le processus de remplacement des signets.


    Parfois et sans raison apparente si on fusionne plusieurs enregistrements (pour produire plusieurs fois le même document pour diverses personnes) Word se croise complètemement les yeux sur la numérotation des paragraphes ou des puces.
    Je n’ai pas encore rencontré ce problème.


    Il est préférable de faire tous les calculs de substitution dans Access car le langage de programmation de fusion est réellement pourri et le debuggage des champs de fusion est assez difficile.
    Et :
    J'ai eu une mauvaise surprise sur le formatage des nombres, parfois Access affiche 2.00 et Word imprime 1.999999999. Note : je travaille dans un environnement multilingues : français, anglais ce qui n'aide peut-être pas.
    Il est à la limite plus simple de formater les données et de les convertir en texte dans Access plustôt que d'utiliser les formats de Word.
    Je partage ton avis, mais c’est sans doute parce que toi et moi sommes plutôt habitués à la syntaxe Access qu’à celle de Word.

    Changer la source de données des words peut être problématique.
    Je ne connais pas assez Word, pour émettre un avis sur la facilité de modifier à la main l'original du document de publipostage.
    Mais, dans l’exemple du tutoriel, tu remarqueras que dans l’option « Avec champs de fusion », l’instruction



    change la db de référence, quelle que soit celle qui avait été choisie à l’origine pour confectionner le document Word.



    Encore merci pour tes contributions.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Oui j'ai fait cela ... et tous mes Word on cessé de fusionner. Il a fallu que je revienne aux versions précédentes.

    À part le 255 champs max les autres problèmes ont été aléatoires. Un coup ça marche, un coup non mais sans règle apparente.

    Mon point n'était pas de décourager les gens d'utiliser cette solution qui marche dans l'ensemble assez bien, juste d'informer des problèmes qu'ils pourraient rencontrer et qui sont assez frustrants.

    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
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Pas de souci René.
    Merci encore pour ton intervention.

    Bon week-end.

  6. #6
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Pour dépasser les 255 champs (limite des tables et requêtes Access), on peut faire une représentation sous forme de métadonnées tblMetaExport(idligne, idPatient, NomChamp,ValeurChamp)


    Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    1	1	NomPatient	Dupont
    2	1	PrenomPatient	Luc
    3	1	DNPatient	11/10/1978
     
    ...
     
    256	1	TypeSuture	Agrafes
    257	1	......		....
    Mais bon, 255 champs c'est quand même déjà pas mal

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Bonjour Christophe,

    métadonnées tblMetaExport
    Peux-tu donner un lien pour trouver de la documentation à ce sujet ?
    Est-ce disponible dans Access2000 ?

  8. #8
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Ceci est disponible quelque soit le SGBD puisque c'est une modélisation des attributs sous forme de lignes.

    Au lieu de traiter que le nom d'un patient est une propriété du patient, on modélise le fait que le patient a une caractéristique qui est son nom.

    Un exemple de modélisation de la sorte :

    tblClient(IdClient,PortableClient,FaxClient,FixeClient)

    limite le nombre de coordonnées à 3.

    Alors que

    tblCoordonneesClient(IdClient,LibelleCoordonnee,ValeurCoordonnee) permet de saisir autant de coordonnées que souhaitées.

    Un lien pour en savoir d'avantage : http://sqlpro.developpez.com/cours/m...n/metadonnees/

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    OK mais comment tu t'en sert pour faire la fusion dans Word ?

    En standard Word fusionne à partir d'un enregistrement donc on ne peut pas dépasser 255 champs.

    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.

  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 596
    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 596
    Par défaut
    Merci Christophe pour cette adresse.

  11. #11
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Citation Envoyé par marot_r Voir le message
    OK mais comment tu t'en sert pour faire la fusion dans Word ?

    En standard Word fusionne à partir d'un enregistrement donc on ne peut pas dépasser 255 champs.

    A+


    Au pire on pourrait essayer d'exporter dans un classeur excel ou un csv, mais je suis même pas sûr que, du coup, Word accepte plus de champs

  12. #12
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonne idée le .XlsX ou le csv je ne l'avais pas envisagé.

    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.

  13. #13
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Bonjour,

    mais je suis même pas sûr que, du coup, Word accepte plus de champs
    On a une certaine marge, mais on est quand même limité à 2 147 483 647 !


    Source : http://support.microsoft.com/kb/211489/fr


    P.-S. On demande volontaire pour tester le message reçu en cas de dépassement.
    Images attachées Images attachées  

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    On demande volontaire pour tester le message reçu en cas de dépassement
    Un astronome peut-être, ce sont des gens habitués aux grands nombres :-).

    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.

  15. #15
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Oui René, sauf que n'aurons le résultat que dans quelques... années-lumière !

  16. #16
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjour Claude,

    Très bon tuto, j'ai bien aimé la manière d'aborder la problématique des relations Word vs Access.

    J'ai fait quelques modifications pour une application et je voulais partager.

    Premièrement j'ai laissé la possibilité à l'administrateur de la bd de choisir l'emplacement où seront enregistrer les documents de manière très simple, une table avec le chemin réseau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strF = DMax("CheminFichier", "P_Word")
    J'ai modifié le code pour qu'il soit accessible à partir de plusieurs formulaires en créant dans un module une fonction qui reprend tes subs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub btnLettre_Click()
     
        fuChercherDocType Me.hWnd, Eval(Me.ActiveControl.Tag), "R_Parametres", Me.Compagnie, Me.NUM_CLIENT
     
    End Sub
    En plus comme mon application à plusieurs tables sans rapport direct la possibilité d'avoir plusieurs requêtes "création de table" passé en paramètre dans la fonction pour ainsi mieux définir la table destination finale.

    J'ai aussi modifié le sub CreerDosPatient pour tenir compte du type de fichier sélectionné et de la méthode à appliquer selon le cas.
    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
    26
    Private Function fuCreerDosPatient(strDossier As String, loC As Long)
    On Error GoTo GestionErreurs
        'Créer le dossier Patient si nécessaire
        Dim strType As String
        DossierPat = strF & "\DossiersClients\" & strDossier & "_" & loC
        MkDir DossierPat
        'Quel type de fichier?
        strType = Right(CheminDocType, Len(CheminDocType) - InStrRev(CheminDocType, "."))
        Select Case strType
            Case "docx", "doc"
                fuCreerDoc strDossier
            Case "xlsx", "xls"
                fuCreerExc strDossier
            Case Else
     
        End Select
     
    Exit Function
    GestionErreurs:
        Select Case Err.Number
            Case 75 'le dossier existe déjà
            Resume Next
        Case Else
            MsgBox "Erreur dans CreerDosPatient" & " " & Err.Number & " " & Err.Description
        End Select
    End Function
    Présentement je traite Word et Excell mais je vais traiter d'autres types de fichiers, j'en suis rendu là.

    Encore un fois merci, ton tuto m'a amené a revoir une application qui fonctionnait bien, mais qui maintenant est beaucoup plus professionnelle.

    Robert

  17. #17
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Bonjour Robert,

    Ravi de savoir que ce tuto a pu t'être utile.

    Merci de me l'avoir communiqué.

    Au plaisir de te recroiser au détour d'une discussion sur ce forum.

    Claude.

  18. #18
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    Bonjour Claude,

    Nouvelle expérience avec ton code.

    Une version qui fonctionne sous RunTime (fichier accdr)cause un problème, lors de l'ouverture de Word le message d'erreur "la base est en mode exclusif par admin bla bla bla". Donc impossible d'aller lire les données de la table. J'ai chercher chez Microsoft et je n'ai rien vu.

    Pour ne pas perdre plus de temps j'ai contourné le problème en créant une nouvelle base qui possède seulement la table destination et modifier la requête pour qu'elle exporte les données dans cette table. La table est dans le même répertoire que l'application (frontale), donc une base pour chaque utilisateurs.

    Ça fonctionne très bien, mais je trouve curieux que Word ne puisse lire un fichier accdr!

    Bonne journée

  19. #19
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    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 596
    Par défaut
    Bonjour Robert,

    Désolé de ne pouvoir t'aider, j'en suis encore à utiliser Access2000.

    Tu aurais peut-être plus de chances de trouver de l'aide en signalant ton problème dans le forum Word.

    Au plaisir.

  20. #20
    Membre régulier
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2014
    Messages : 8
    Par défaut ouvrir un document type à partir d'un modèle
    Bonjour,

    débutant dans access et sur ce forum, je commence par remercier tous ceux qui se donnent sur mal pour nous.

    J'ai lu le tuto, j'ai essayé de comprendre, ça viendra après plusieurs lectures.

    Pour l'instant, j'arrive à éditer un document word rempli avec le contenu des signets.

    Mais le document qui s'ouvre est un modèle (.dotx) et je ne voudrais pas qu'un utilisateur le modifie manuellement et l'enregistre. Bien sûr, je vais dire à mes utilisateurs : faites attention à faire "enregistrer sous..." mais un jour ou l'autre...

    Peut-on spécifier à Access/Word que l'on ouvrir le document en mode document (.docx) de façon que mon modèle soit protégé.

    Merci pour vos réponses.

    Francois

Discussions similaires

  1. Site pour mettre en ligne des document à télécharger
    Par snoopy69 dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 24/01/2006, 20h59
  2. Réponses: 4
    Dernier message: 07/01/2006, 20h10

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