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 :

Champs word préremplis depuis table access


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Champs word préremplis depuis table access
    Salut,

    j'ai fait une base de données (avec access 2003 SP1) qui permet de gérer plusieurs éléments du parc informatique de la boite ou je suis actuellement. Et parmi ces éléments voila un des deux derniers problèmes qui me reste à résoudre :

    j'ai un formulaire qui me permet de voir quel ordinateur est utilisé par quel employé. Dans la table t_ordinateur (nom assez explicite ^^) j'ai aussi bien les pc de bureau que les portables.
    Et en fait, lorsque c'est un portable, j'ai un bouton qui s'affiche dans le formulaire pour imprimer un document de remise du pc portable. J'arrive à ouvrir le doc word (word 2003) sans problème et à faire le publipostage à partir de word.
    Mais en fait, je voudrait que quand je clique sur le bouton, le document s'ouvre avec directement les renseignements utile (SerialNumber, Modele, Name, FirstName).

    J'ai essayé en créant une table temporaire qui se remplit avec les renseignement voulu à l'ouverture du formulaire et se vide à sa fermeture.
    Mais quand le doc word s'ouvre, les renseignements qui sont dans la table temporaire ne s'affiche pas. A la place, il y a un champs soit vide soit du type <<SerialNumber>>.

    voila j'espère avoir été assez précis
    merci d'avance

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    J'ai essayé en créant une table temporaire qui se remplit avec les renseignement voulu à l'ouverture du formulaire et se vide à sa fermeture.
    Mais quand le doc word s'ouvre, les renseignements qui sont dans la table temporaire ne s'affiche pas. A la place, il y a un champs soit vide soit du type <<SerialNumber>>.
    Il faut faire la fusion du document non ?

    La piste que je te donne est une piste qu'il faut que j'exploite moi aussi pour une des bases :
    Crées ton document comme un modèle (.dot) avec tes champs de publipostage.
    Dans l'objet ThisDocument : tu mets une macro qui va te faire le publipostage.
    Au lancement du document, tu actives les macros (tu peux aussi demander d'activer les macros dès l'ouverture) et ton document est créé ce n'est plus le document contenant les champs.

  3. #3
    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,

    J'imagine que tu ne remets pas plusieurs portables en même temps...

    Pour autant que les renseignements que tu dois récupérer dans Word soient affiché sur le formulaire, tu peux directement les insérer dans un document en utilisant des signets.

    Exemple de code :

    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
    Sub FormInsert()
        On Error Resume Next
        Dim W_App As New Word.Application
        With W_App
            .Visible = True
            .Documents.Open ("doc1.doc")
            .ActiveDocument.Bookmarks("Ville").Select
            .Selection.Text = Me.Texte1
            .ActiveDocument.Bookmarks("Adresse").Select
            .Selection.Text = Me.Texte3
            .ActiveDocument.SaveAs ("Doc2.Doc")
            .Quit
        End With
        Set W_App = Nothing
    End Sub
    Domi2

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Kikof
    Salut,
    Dans l'objet ThisDocument : tu mets une macro qui va te faire le publipostage.
    Au lancement du document, tu actives les macros (tu peux aussi demander d'activer les macros dès l'ouverture) et ton document est créé ce n'est plus le document contenant les champs.
    Merci de ta réponse.
    Par-contre, j'ai créé la macro dans word qui me fait le publipostage puis lance l'impression. Mais je sais pas comment on fait pour que la macro se lance quand on ouvre le document... il faut le préciser dans le modèle word ou dans access?

    Merci encore

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    merci domi2
    je vais essayer ta solution et on verra bien

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Merci domi2, ta solution marche par contre, il y a juste un petit soucis :

    c'est que dans mon doc, les nom et prénom de la personne qui retire le pc portable apparaissent plusieurs fois dans le document. Et j'arrive pas à mettre plusieurs fois le même signet dans le doc >_<
    Donc un signet doit-il être unique dans un document? Il faut que je recrée un signet à chaque fois ou est-ce qu'il y a une astuce ?

    A oui et aussi, est-ce qu'il existe une commande pour lancer l'impression du doc en deux exemplaires à partir de VBA ou vaut mieux lancer une macro (sachant que je ne sais pas comment lancer la macro du doc à son ouverture...)

    Merci beaucoup

  7. #7
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    C'est bon pour les signets... j'ai pas trouver d'astuces alors j'ai recrée un signet à chaque fois mais si quelqu'un a une astuce, je suis toujours preneur

    Sinon, vraiment, je sèche sur l'impression. La méthode PrintOut fonctionne à partir de l'objet DoCmd.
    Mais lorsque j'execute cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.PrintOut , , , , 2
    c'est le formulaire qui sort à l'impression pas le doc word ce qui est normal. Mais je ne voit pas comment faire pour que sa imprime le doc...
    J'ai bien pensé à faire une macro mais elle ne démarre pas à l'ouverture du doc...

    Alors si quelqu'un a une idée... je le remercie d'avance

  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
    Bonjour,

    C'est bon pour les signets... j'ai pas trouver d'astuces alors j'ai recrée un signet à chaque fois mais si quelqu'un a une astuce, je suis toujours preneur
    Je ne sais pas si on peut faire autrement. Pour ma part, je déclare aussi un signet pour chaque donnée à insérer dans le document Word.

    Pour l'impression, corrige la fin de ton code comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .ActiveDocument.PrintOut
    .ActiveDocument.PrintOut
    .ActiveDocument.SaveAs ("Doc2.Doc")
    .Quit
    End With
    Pas testé, mais cela devrait le faire.

    Domi2

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .ActiveDocument.PrintOut
    .ActiveDocument.PrintOut
    .ActiveDocument.SaveAs ("Doc2.Doc")
    .Quit
    End With
    Justement, j'ai testé et ça ne marche pas. La méthode PrintOut n'est pas prise en charge par l'objet. C'est un message d'erreur de ce style.

    Sinon, j'ai essayé avec une macro mais comme dit, il faudrait une commande en vba qui me permette de l'exécuter et sa aussi... je ne vois comment faire.

    Mais merci quand même pour les signet j'y aurait jamais pensé.

  10. #10
    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,

    tu as bien testé avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ActiveDocument.PrintOut
    et pas

    Domi2

  11. #11
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    C'est bon ^^ ça marche
    J'ai du me tromper quand je l'ai testé la première... C'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ActiveDocument.PrintOut
    Merci de ton aide domi2. je viens juste de trouver comment faire la macro
    comme quoi lol
    Mais je vais rester avec le vba, c'est plus simple pour s'y retrouver par la suite je pense.

    Voila merci encore pour tout

  12. #12
    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,

    De rien...

    Tu mettre je pense...

    Domi2

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    J'ai une dernière question

    quel commende est-ce que je dois mettre pour fermer le doc word sans le sauvegarder.
    Je voudrais éviter que les gens puisse prendre la main et sauvegarder le doc sinon, je pourrais plus le réutilisé ; faudra que je le modifie et tous

    Merci

  14. #14
    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
    Non, pas de soucis...

    Tu le sauvegardes sous un autre nom, ainsi, ton document original reste inchangé...

    Domi2

  15. #15
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    re,

    justement, je ne veux pas sauvegarder les modifs.
    En fait, lorsqu'un mec prend un pc portable, la responsable imprime le doc et c'est tout, faudrait pas qu'après, elle se retrouve avec 150 doc word dans un répertoire qui lui serviront rien. Tu vois ce que je veux dire...

    Et comme cette base est susceptible d'être à terme, en partie accessible aux utilisateurs, je voudrais que le bouton ne serve qu'à imprimer le doc sans le sauvegarder.

    si tu connais un truc...

    et encore merci

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

Discussions similaires

  1. ajout champ en décimal dans table ACCESS
    Par djmic dans le forum C#
    Réponses: 14
    Dernier message: 07/01/2013, 15h27
  2. Pbe avec un champ memo d'une table ACCESS
    Par kiki.gaby dans le forum InfoPath
    Réponses: 12
    Dernier message: 06/12/2008, 18h15
  3. Importer un document Word dans une table Access
    Par emeraudes dans le forum Access
    Réponses: 7
    Dernier message: 03/06/2006, 09h53
  4. Affectation sur un champ vide d'une table Access
    Par kurkaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2005, 09h14
  5. Table Access : ajout d'un champ depuis VB6
    Par pcvesoul dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/09/2005, 09h14

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