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 :

Condition : In(Val1,Val2,Val3) dans publipostage


Sujet :

Access

  1. #1
    Invité
    Invité(e)
    Par défaut Condition : In(Val1,Val2,Val3) dans publipostage
    Bonjour à tous,

    Je voudrai pouvoir lancer un publipostage dans word, depuis Access 2000.
    Cela fonction sauf quand je met l'instruction : In()

    Voilà un bout de mon 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    strConnect = "QUERY Rqt LettreEnv"
    strSQL1 = "SELECT * FROM [Rqt LettreEnv] WHERE "
    strSQL2 = "[PlusConcernée]= False "
    Select Case QuelleConv
      Case "ConvB"
        MaCond = " AND [EditionB]=0"
      Case "ConvPL"
        MaCond = " AND [EditionPL]=0"
      Case "ConvIP"
        MaCond = " AND [EditionIP]=0"
    End Select
    ' Prépare la Query STRing
    MaRqt = strSQL1 & strSQL2 & Critère
    '
    Dim WdApp As Word.Application
    Set WdApp = CreateObject("Word.Application")
    With WdApp
      .Documents.Open Filename:=MonFic
      .CommandBars("Standard").Visible = True
      .CommandBars("Formatting").Visible = True
      .Visible = True
      With .ActiveDocument
        .MailMerge.OpenDataSource Name:=MaBase, _
        ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
        AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
        WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
        Format:=wdOpenFormatAuto, Connection:=strConnect, _
        SQLStatement:="SELECT * FROM [Rqt LettreEnv]"
        '
        .MailMerge.DataSource.QueryString = MaRqt
        .MailMerge.ViewMailMergeFieldCodes = False  'wdToggle
        .MailMerge.Destination = wdSendToNewDocument  ' wdSendToPrinter
        .MailMerge.Execute Pause:=False
        .Close wdDoNotSaveChanges
      End With
    End With
    La valeur de la variable MaRqt est :
    SELECT * FROM [Rqt LettreEnv] WHERE [PlusConcernée]= False [NumOP] = 'QD05-E15' AND [IdConv] IN(283,284,285)

    Word ne connaît pas : In()

    Comment faire ?

    Cordialement

  2. #2
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    il te faut corriger MaRqt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [Rqt LettreEnv] WHERE ([PlusConcernée]= False AND [NumOP] = 'QD05-E15' AND [IdConv] IN (283,284,285) )
    normalement çà devrait aller

    Il est nécessaire de relier les différentes conditions avec OR AND attention à garder des espaces avant et après

    A+

  3. #3
    Invité
    Invité(e)
    Par défaut Effectivement ...
    Salut Alexandre,

    Effectivement il manquait un "AND", j'avais les yeux dessus, mais impossible de voir l'erreur !?

    Par contre je ne suis pas sûr que Word reconnaisse "in()" pour mon publipostage !?

    Je vais tester.

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Salut
    je remarque une chose qui me parait bizarre. Je suppose que tu travailles avec Access et Word 2003

    .MailMerge.OpenDataSource Name:=MaBase, _
    ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
    AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
    WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
    Format:=wdOpenFormatAuto, Connection:=strConnect, _
    SQLStatement:="SELECT * FROM [Rqt LettreEnv]"
    '
    .MailMerge.DataSource.QueryString = MaRqt
    dans ton code tu ouvres beaucoup de "query"
    il me semble mais c'est à vérifier
    que si tu fais uniquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         .ActiveDocument.MailMerge.OpendataSource Name:=CurrentProject.FullName, SQLStatement:= MaRqt
    çà devrait aller.
    Car dans ton cas tu ouvres une fois la connexion et ensuite tu mets en places ta requête or je pense que tu peux directement mettre en place la connexion avec la bonne requête.
    Je pense pas que le problème vienne du In() avec Word.
    Ce sont des pistes pour chercher car je n'ai que de l'expérience avec word 2000

    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2007, 11h06
  2. [XPath] Clause semblable à un IN (val1, val2, etc)
    Par Fafox dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/04/2007, 12h13
  3. condition de type ereg(php) dans requete
    Par nicerico dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/04/2007, 14h25
  4. Format d'un champ heure dans publipostage
    Par marco361020 dans le forum Word
    Réponses: 9
    Dernier message: 22/03/2007, 23h05
  5. Arrondi dans publipostage ACCESS
    Par jps2 dans le forum Access
    Réponses: 2
    Dernier message: 21/03/2006, 08h16

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