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

Requêtes et SQL. Discussion :

sql, clause where et variable publique


Sujet :

Requêtes et SQL.

  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 sql, clause where et variable publique
    Bonjour,

    J'ai récupéré le tuto pour faire du publipostage access/word.

    J'ai des petit soucis dans la rédaction d'une ligne sql.

    J'ai besoin de passer une variable publique (strFiltreall) dans une clause WHERE :


    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
    Sub MergeIt()
    Dim objWord As Word.Document
    Set objWord = GetObject("C:\Local_datas\Access\Publipostage\Publipostage.doc", "Word.Document")
    ' Rend Word visible important puisque la fusion se fait à l'écran.
    objWord.Application.Visible = True
    ' Sélectionne .la base de données Contacts_Direction comme source de données pour la fusion
    objWord.MailMerge.OpenDataSource _
            Name:="C:\Local_datas\Access\database\Contacts_Direction.mdb", _
            LinkToSource:=True, _
            Connection:="TABLE Tb_contacts", _
            SQLStatement:="SELECT * FROM [Tb_contacts]WHERE strFiltreall"
    ' Exécution de la fusion.
    objWord.MailMerge.Execute
    Set objWord = Nothing
                        
    End Sub
    Je m'en sort pas.. Quand je lance le publipostage, il ne prends pas compte la variable...

    Si quelqu'un peut me corriger, je le remercie d'avance

    seb

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello et bienvenue sur le forum

    Si ton filtre (comme le str..) le laisse suggérer retourne une valeur String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [Tb_contacts]WHERE '" & strFiltreall & "'"

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

    J'ai essayé la ligne :

    SQLStatement:="SELECT * FROM [Tb_contacts]WHERE '" & strFiltreall & "'"

    et cela ne fonctionne pas. Je n'ai pas de message d'erreur, la fusion s'effectue sur tous les enregistrements.

    la variable publique strFiltreall est de type variant.
    Elle renvoie par exemple la valeur suivante :

    ([Type]='comédiens' AND [Zone_pays]='France')


    merci pour votre aide

    Seb

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Pourquoi donc l'existence des ":" ? Je n'ai jamais vu ce codage... ?
    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", _
    Pourquoi n'écris-tu pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLStatement = "SELECT * FROM [Tb_contacts]WHERE [Type]='comédiens' AND [Zone_pays]='France'"
    Sinon, alors, divises ta variable en deux, strType =... et strZone = ...

  5. #5
    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
    ben... heu... pour les : ils sont dans le tuto... j'ai fait un copié-collé
    http://heureuxoli.developpez.com/publipostage/#LI-B-5-a
    section I-B-5-e. Ajout d'une procédure

    Pourquoi je n'écris pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = "SELECT * FROM [Tb_contacts]WHERE [Type]='comédiens' AND [Zone_pays]='France'"
    Les données de filtrage changent, si c'était figé, oui je taperais tout en dur cela m'éviterai cette prise de tête..


    strFiltreall : je l'obtiens en concaténant plusieurs valeurs de listes modifiables. cela me permet de filtrer un sous formulaire convenablement.

  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
    c'est résolu ;-)

    La syntaxe exacte est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM [Tb_contacts]WHERE " & strFiltreallpub
    merci encore

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

Discussions similaires

  1. requete SQL clause WHERE avec variable
    Par gabule dans le forum JDBC
    Réponses: 6
    Dernier message: 09/01/2019, 11h04
  2. [LINQ To SQL] Clauses WHERE dynamiques
    Par SaumonAgile dans le forum Accès aux données
    Réponses: 7
    Dernier message: 23/02/2008, 01h11
  3. [SQL] fonction where avec variable
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/10/2007, 09h12
  4. [Oracle / Sql] clause where avec resultat d'une requete
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h37
  5. [SQL] clause Where sur un booléen
    Par mosquitout dans le forum Access
    Réponses: 3
    Dernier message: 21/12/2005, 21h29

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