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 :

[Publi-access-word] eviter les boites de dialogue


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut [Publi-access-word] eviter les boites de dialogue
    Bonjour,

    Lorsque je lance mon publipostage une boite de dialogue me demande de
    confirmer l'execution de code SQL, je cliques oui et ca continue... ensuite
    je dois sélectionner la table contenant les données.. après la fusion
    s'effectue...

    En fouillant sur le newsgroup, j'ai trouvé la parade pour la sécurité SQL,
    ajout d'une clé dans la bdr et ca roule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Windows Registry Editor Version 5.00
    [HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Options]
    "SQLSecurityCheck"=dword:00000000
    Maintenant j'aimerai bien ne pas avoir à confirmer la table d'où proviens
    les données.. (surtout que la source est déja spécifiée dans le code
    initiant le publipostage )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    objWord.MailMerge.OpenDataSource _
            Name:="C:\Local_datas\Access\database\Contacts_Direction.mdb", _
            LinkToSource:=True, _
            Connection:="TABLE Tb_contacts", _
            SQLStatement:="SELECT * FROM [Tb_contacts]WHERE " & strFiltreallpub
    Comment fait-on ??

    Merci d'avance

    Seb

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 639
    Points : 34 356
    Points
    34 356
    Par défaut
    Bonjour,
    d'une manière générale,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.SetWarnings False
    te permet d'éviter les messages de demande de confirmation.

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    d'une maniere générale oui,

    Pour la securité SQL cela ne fonctionne pas avec le SetWarnings False.
    La modification de la BDR corrige ce probleme.

    Par contre je n'ai toujours de soluce pour mon problème de confirmation de table...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    dans le cas des fucions automatiques depuis Access, voilà comment je fonctionne:

    D'abord :
    Sur Access:
    1 - je crée une requête création de table de fusion;
    2 - je l'exécute.

    Ensuite:
    Sur Word:
    1 - je crée mon document de fusion;
    2 - je fais la liason avec ma table de fusion ;
    3 - j'enregistre le document.

    Enfin:
    Sur Access:
    j'utilse le code de fusion qui ouvre le document qui se fusionne automatiquement.
    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
     
    Dim wdapp As Word.Application
    Do While Not RsFusion.EOF
    Dim i
    i = RsFusion.AbsolutePosition + 1
    Set wdapp = CreateObject("Word.application")
    With wdapp
        .Visible = True
        .Documents.Open Fiche, , True
        .ActiveDocument.MailMerge.DataSource.FirstRecord = i
        .ActiveDocument.MailMerge.DataSource.LastRecord = i
        .ActiveDocument.MailMerge.Execute
        .ActiveDocument.SaveAs Path & RsParam![operation] & "_" & Replace(RsFusion![SOCIETE], "/", "_") & "_" & Format(Date, "dd_mm_yyyy")
        .ActiveDocument.SaveAs PathExtranet & RsFusion![SOCIETE] & "_" & RsFusion![NOM CONTACT] & ".doc"
    End With
    For Each Doc In wdapp.Documents
        Doc.Close savechanges:=wdDoNotSaveChanges
    Next Doc
    Set wdapp = Nothing
    RsFusion.MoveNext
    Loop
    par contre mon souci actuel est le suivant:
    Sur mon poste (Access XP, Word XP) tout fonctionnent merveilleusement. Mai dès que je lance mon code sur un autre poste, la fusion me demande la confirmation de l'exécution du code SQL.

    J'ai essayé de créer directement la clé dans la Bdr mais celà nemarche pas.

    Pourrais-je savoir coment tu as fait pour éviter la confirmation. est ce que tu as inclu la création de la clé dans ton code ? si oui, OU ?

    Merci

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Citation Envoyé par sebinator Voir le message
    d'une maniere générale oui,

    Pour la securité SQL cela ne fonctionne pas avec le SetWarnings False.
    La modification de la BDR corrige ce probleme.

    Par contre je n'ai toujours de soluce pour mon problème de confirmation de table...
    C'est peut-être dans l'application Word que tu dois spécifier que tu ne veux pas de message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.DisplayAlerts = wdAlertsNone
    en remplaçant Application par ton objet Word.Application

    Cela aide t'il?

  6. #6
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Hamdi Voir le message
    Bonjour,

    dans le cas des fucions automatiques depuis Access, voilà comment je fonctionne:

    D'abord :
    Sur Access:
    1 - je crée une requête création de table de fusion;
    2 - je l'exécute.

    Ensuite:
    Sur Word:
    1 - je crée mon document de fusion;
    2 - je fais la liason avec ma table de fusion ;
    3 - j'enregistre le document.

    Enfin:
    Sur Access:
    j'utilse le code de fusion qui ouvre le document qui se fusionne automatiquement.
    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
     
    Dim wdapp As Word.Application
    Do While Not RsFusion.EOF
    Dim i
    i = RsFusion.AbsolutePosition + 1
    Set wdapp = CreateObject("Word.application")
    With wdapp
        .Visible = True
        .Documents.Open Fiche, , True
        .ActiveDocument.MailMerge.DataSource.FirstRecord = i
        .ActiveDocument.MailMerge.DataSource.LastRecord = i
        .ActiveDocument.MailMerge.Execute
        .ActiveDocument.SaveAs Path & RsParam![operation] & "_" & Replace(RsFusion![SOCIETE], "/", "_") & "_" & Format(Date, "dd_mm_yyyy")
        .ActiveDocument.SaveAs PathExtranet & RsFusion![SOCIETE] & "_" & RsFusion![NOM CONTACT] & ".doc"
    End With
    For Each Doc In wdapp.Documents
        Doc.Close savechanges:=wdDoNotSaveChanges
    Next Doc
    Set wdapp = Nothing
    RsFusion.MoveNext
    Loop
    par contre mon souci actuel est le suivant:
    Sur mon poste (Access XP, Word XP) tout fonctionnent merveilleusement. Mai dès que je lance mon code sur un autre poste, la fusion me demande la confirmation de l'exécution du code SQL.

    J'ai essayé de créer directement la clé dans la Bdr mais celà nemarche pas.

    Pourrais-je savoir coment tu as fait pour éviter la confirmation. est ce que tu as inclu la création de la clé dans ton code ? si oui, OU ?

    Merci
    Bonjour,

    Pour ma part, je suis sous office 2003 sp2(version 11). J'ai modifié la BDR directement.

    seb

  7. #7
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Bonjour



    C'est peut-être dans l'application Word que tu dois spécifier que tu ne veux pas de message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.DisplayAlerts = wdAlertsNone
    en remplaçant Application par ton objet Word.Application

    Cela aide t'il?

    C'est une piste, je vais tester..

  8. #8
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par sebinator Voir le message
    C'est une piste, je vais tester..



    J'ai testé, cela ne fonctionne pas.

    Word s'obstine à me demander de sélectionner la table pour effectuer la fusion

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Peut être une solution
    Bonjour a tous.

    Ceci est mon tout premier post, mais cela fait un moment que je traine sur le forum et le site alors un grand merci à tous ceux dont les explications, réponses (voire même questions) m'ont permis d'avancer au quotidien pour résoudre mes soucis techniques.

    @Sebinator : j'ai eu le meme problème quand j'ai commencé le publipostage en suivant le tuto de Heureux-oli (un grand Grand merci à lui !! ) :
    1iere boite de dialogue à l'ouverture du fichier word (Oui/Non pour la requete SQL)
    2ieme boite de dialogue pour la connexion vers la base de données
    (Peut être d'autres encore je ne sais plus car j'ai arreté à ce moment)

    La solution que j'ai trouvé est toute simple : à la fin de la préparation de mon document principal de publipostage (fait exactement comme dans le tutoriel de Heureux-oli) je retourne à la première étape pour remettre "Document Word normal" (qui se remplace automatiquement par "Lettres" lors de l'etape de la connexion à la BD du tutoriel).
    Ensuite je remet le document en mode "Lettres" par le code juste avant d'effectuer la connexion suivie du publipostage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          oDoc.MailMerge.MainDocumentType = wdFormLetters
          oDoc.MailMerge.OpenDataSource ..................
          oDoc.MailMerge.Execute
    Depuis que mes documents sont préparés ainsi, je n'ai plus du tout de problème de boites de dialogue intempestives.
    (Ce qui ne veut pas dire plus de problèmes du tout car la version de mon code fonctionne parfaitement avec Office 2003 mais plante joyeusement au moment de la connexion BD avec Office XP SP3).

    En espèrant que cela peut t'aider.

  10. #10
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    Points : 129
    Points
    129
    Par défaut
    Cela resoud mon problème. Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/12/2008, 10h58
  2. Réponses: 10
    Dernier message: 18/07/2007, 17h36
  3. Erreur d'affichage dans les boite de dialogue windows
    Par DEVELSI dans le forum Windows
    Réponses: 3
    Dernier message: 26/06/2007, 08h31
  4. Réponses: 1
    Dernier message: 30/05/2005, 17h02
  5. personaliser Les boites de dialogue !!
    Par leo13 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/01/2005, 18h36

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