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 :

Clause WHERE dans une requète [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 28
    Points : 18
    Points
    18
    Par défaut Clause WHERE dans une requète
    Bonjour,

    J'ai un formulaire"Start" contenant une liste déroulante "ListeClient" comprenant le "Nom", le "Prénom et l''id_client" de mes clients. J'ai créé un boutons ouvrant la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ClientTest.*, Enfants.*, ClientTest.id_client, Crédits.*, [Comptes bancaires].*, Finance.*, [Biens Immo].*
    FROM ((((ClientTest LEFT JOIN Enfants ON (ClientTest.id_client = Enfants.[réf famille]) AND (ClientTest.id_client = Enfants.[réf famille])) LEFT JOIN Crédits ON ClientTest.id_client = Crédits.[Réf client]) LEFT JOIN [Comptes bancaires] ON ClientTest.id_client = [Comptes bancaires].[Réf client]) LEFT JOIN [Biens Immo] ON ClientTest.id_client = [Biens Immo].[Réf client]) LEFT JOIN Finance ON ClientTest.id_client =Finance.[ref_client]
    WHERE ([ClientTest.id_client]= Me![ListeClient])
    ORDER BY ClientTest.id_client;
    J'essaye d'ouvrir toutes les info client correspondant au client choisis dans la liste déroulante. Cette requète ne fonctionne pas et m'ouvre un fénètre me demandant une "Entrer une valuer de paramètre pour : Me!ListeClient"

    Pouvez vous m'aider ?

    Cordialement,

    Brezz

  2. #2
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Bonjour,

    3 remarques:

    1- comme tu ne fournis pas le schéma de ta base, impossible de vérifier la requête.

    2- tu ne dis pas comment cette requête est exécutée, c'est une info qui pourrait être intéressante!

    3- quand je vois une requête avec des noms de champ contenant des espaces et des caractères accentués, ça ne me donne pas envie d'aller plus loin!

    Cordialement,

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 649
    Points : 14 627
    Points
    14 627
    Par défaut
    Bonjour,
    tu dois considérer que la valeur de ta liste est une variable et ne dois pas être dans la partie "texte" de ta requète mais dois y être ajoutée.
    Regarde cet exemple, tu comprendras mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim Toto as String
    Toto = "Ceci est un test"
    Debug.Print "Message : Toto"
    ' te renvoie : 
    Message : Toto
    Debug.Print "Message : " & Toto
    ' te renvoie
    Message : Ceci est un test
    Si tu remplace Toto par Me![ListeClient], tu verras la différence.
    Essaie ceci et tu pourras utiliser la variable Marequete comme une requète SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Marequete = "SELECT ClientTest.*, Enfants.*, ClientTest.id_client, Crédits.*, [Comptes bancaires].*, Finance.*, [Biens Immo].* " & _
    FROM ((((ClientTest LEFT JOIN Enfants ON (ClientTest.id_client = Enfants.[réf famille]) AND (ClientTest.id_client = Enfants.[réf famille])) LEFT JOIN Crédits ON ClientTest.id_client = Crédits.[Réf client]) LEFT JOIN [Comptes bancaires] ON ClientTest.id_client = [Comptes bancaires].[Réf client]) LEFT JOIN [Biens Immo] ON ClientTest.id_client = [Biens Immo].[Réf client]) LEFT JOIN Finance ON ClientTest.id_client = Finance.[ref_client] " & _
    WHERE ([ClientTest.id_client]= " & Me![ListeClient] & ") ORDER BY ClientTest.id_client;"
    Tu peux aussi remplacer Me![ListeClient] par Forms![Start]![ListeClient] si tu utilises une requête enregistrée.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Bonjour et merci de l'attention que vous portez à mon problème

    @Phillipe

    1- comme tu ne fournis pas le schéma de ta base, impossible de vérifier la requête.
    ci-joint le shéma de ma base

    2- tu ne dis pas comment cette requête est exécutée, c'est une info qui pourrait être intéressante!
    Je suis pas sur de comprendre cette question : Il s'agit d'une requète enregsitrée que j'ouvre sur l'évènement clique d'un bouton

    3-J'avoue c'est pas beau, je compte remettre de l'ordre quand j'aurais mis en place toutes les fonctionnalités souhaitées.

    @tee_grandbois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Marequete = "SELECT ClientTest.*, Enfants.*, ClientTest.id_client, Crédits.*, [Comptes bancaires].*, Finance.*, [Biens Immo].* " & _
    FROM ((((ClientTest LEFT JOIN Enfants ON (ClientTest.id_client = Enfants.[réf famille]) AND (ClientTest.id_client = Enfants.[réf famille])) LEFT JOIN Crédits ON ClientTest.id_client = Crédits.[Réf client]) LEFT JOIN [Comptes bancaires] ON ClientTest.id_client = [Comptes bancaires].[Réf client]) LEFT JOIN [Biens Immo] ON ClientTest.id_client = [Biens Immo].[Réf client]) LEFT JOIN Finance ON ClientTest.id_client = Finance.[ref_client] " & _
    WHERE ([ClientTest.id_client]= " & Me![ListeClient] & ") ORDER BY ClientTest.id_client;"
    J'ai bien compris l'expemple, mais dans ce cas comment j'execute la requete SQL ?

    ps : J'arrive pas à faire afficher le "Debug.print"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim test As String
    test = "id_client=" & Me![ListeClient]
    Debug.Print "test = " & test
    Images attachées Images attachées  

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 649
    Points : 14 627
    Points
    14 627
    Par défaut
    re,
    si c'est une requête enregistrée tu dois la modifier comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ClientTest.*, Enfants.*, ClientTest.id_client, Crédits.*, [Comptes bancaires].*, Finance.*, [Biens Immo].*
    FROM ((((ClientTest LEFT JOIN Enfants ON (ClientTest.id_client = Enfants.[réf famille]) AND (ClientTest.id_client = Enfants.[réf famille])) LEFT JOIN Crédits ON ClientTest.id_client = Crédits.[Réf client]) LEFT JOIN [Comptes bancaires] ON ClientTest.id_client = [Comptes bancaires].[Réf client]) LEFT JOIN [Biens Immo] ON ClientTest.id_client = [Biens Immo].[Réf client]) LEFT JOIN Finance ON ClientTest.id_client =Finance.[ref_client]
    WHERE ([ClientTest.id_client]= Forms![Start]!![ListeClient])
    ORDER BY ClientTest.id_client;
    car Me! n'est connu que dans les instances d'objets de type Formulaire ou Etat.
    Le résultat de Debug.Print s'affiche dans la fenêtre d'exécution, dans la fenêtre VBA. Si tu ne sais pas l'utiliser (ce qui est dommage car c'est le minimum que l'on doit connaitre quand on développe en VBA) tu peux le remplacer par MsgBox.

    Mais comment utilises-tu cette requête dans ton formulaire ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    re,

    Merci pour ton aide !

    Merci pour tips sur le MsgBox !

    ci-joint mon formulaire dans lequel j'utilise tout cela.

    J'ai bien fait la modification dans ma requète mais cela ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ([ClientTest.id_client] = Forms![Start]!![ListeClient])
    tu mets 2 "!" j'en ai mis qu'un sinon cela me sort un erreur.

    Cordialement,



    Brezz
    Images attachées Images attachées  

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    C'est bon cela marche merci beaucoup !

    Bonne fin de journée

    Brezz

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 28
    Points : 18
    Points
    18
    Par défaut
    Une dernière question avant de mettre en résolu

    Comment puis-je exporte le résultat de cette requète sous word ?

    En cliquant sur fusion avec word, cela me met :

    "Word n'a pas pu ouvrir la source de données." ?

    après avoir choisis comme source de données lors de l'exportation par access :
    "Fichier de base de donnée OLE DB"

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

Discussions similaires

  1. Utilisation des alias dans la clause WHERE d'une requête SELECT
    Par OursRêveur dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 13/07/2013, 04h34
  2. Réponses: 8
    Dernier message: 02/11/2007, 14h51
  3. [VBA] Modification de la clause where d'une requête
    Par Julien Dufour dans le forum VBA Access
    Réponses: 6
    Dernier message: 05/10/2007, 16h44
  4. Clause IF dans une requête
    Par Asdorve dans le forum Langage SQL
    Réponses: 7
    Dernier message: 31/08/2007, 15h43
  5. Réponses: 2
    Dernier message: 29/01/2007, 13h41

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