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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    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 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    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.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

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

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    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 confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    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
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    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

  6. #6
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    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?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    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 éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2007
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 297
    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

+ 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