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

Bases de données Delphi Discussion :

[ADO ACCESS] Problème de syntaxe INNER JOIN


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 39
    Points : 29
    Points
    29
    Par défaut [ADO ACCESS] Problème de syntaxe INNER JOIN
    Bonsoir,

    je vous mets le code qui me pose problème :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM client_tab INNER JOIN (civilite_tab INNER JOIN (ville_tab ON client_tab.villeclient = ville_tab.idville) ON client_tab.civclient = civilite_tab.idcivilite) WHERE libcivilite LIKE ''%'+edit1.Text+'%'' OR libclient LIKE ''%'+edit1.Text+'%'' OR libville LIKE ''%'+edit1.Text+'%'' OR cpville LIKE ''%'+edit1.Text+'%'' AND activeclient=true
    Lorsque je n'utilise qu'un seul INNER JOIN, il n'y a pas de soucis mais lorsque je souhaite en utiliser plusieurs, il me mets un erreur de syntaxe...

    J'ai fais des recherches sur le site de MICROSOFT, la syntaxe me parait identique mais il est possible qu'il faille l'adapter à Delphi ou à ADO, bref, j'ai besoin d'un petit coup de pouce.

    Merci d'avance, Couiss

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    comme ceci ça donne quoi ?
    Code SQL : 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
    SELECT * 
     
    FROM client_tab 
      INNER JOIN 
        civilite_tab ON client_tab.civclient = civilite_tab.idcivilite
      INNER JOIN 
        ville_tab ON client_tab.villeclient = ville_tab.idville
     
    WHERE 
      (
            (libcivilite LIKE ''%'+edit1.Text+'%'')
        OR  (libclient LIKE ''%'+edit1.Text+'%'') 
        OR  (libville LIKE ''%'+edit1.Text+'%'') 
        OR  (cpville LIKE ''%'+edit1.Text+'%'')
        AND (activeclient=true)
      )

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Exactement le même message d'erreur !

    Couiss

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    arrives tu à construire la requête (sans les paramètres) dans le constructeur de requêtes d'Access ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Ben je dois pas être très bon parceque j'essaye de la mettre en place mais elle ne renvoit pas les bonnes données...

    Par contre si je me mets en mode SQL, je vois qu'il m'a changé l'ordre des INNER JOIN, lorsque j'ai voulu les mettre dans mon ordre, ACCESS me fait la même erreur que DELPHI par ADO.

    Je vais creuser dans ce sens, en espérant trouver mon bonheur...

    Couiss

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Dans access if faut mettre des parenthèses pour séparer plusieurs inner join

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    SELECT * 
     
    FROM 
      (client_tab INNER JOIN civilite_tab ON client_tab.civclient = civilite_tab.idcivilite)
      INNER JOIN ville_tab ON client_tab.villeclient = ville_tab.idville
     
    WHERE 
      (
            (libcivilite LIKE ''%'+edit1.Text+'%'')
        OR  (libclient LIKE ''%'+edit1.Text+'%'') 
        OR  (libville LIKE ''%'+edit1.Text+'%'') 
        OR  (cpville LIKE ''%'+edit1.Text+'%'')
        AND (activeclient=true)
      )

    Comme cela, ça devrait être bon.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 39
    Points : 29
    Points
    29
    Par défaut
    Désolé, ce code ne fonctionne pas non plus mais celui-ci oui :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM civilite_tab INNER JOIN (client_tab INNER JOIN ville_tab ON client_tab.villeclient=ville_tab.idville) ON civilite_tab.idcivilite=client_tab.civclient WHERE libcivilite LIKE ''%'+edit1.Text+'%'' OR libclient LIKE ''%'+edit1.Text+'%'' OR libville LIKE ''%'+edit1.Text+'%'' OR cpville LIKE ''%'+edit1.Text+'%'' AND activeclient=true
    J'ai changer de place les tables, si je mets la client_tab au début, cela ne fonctionne pas mais si je la mets au centre ça fonctionne, reste à savoir si cela fonctionnera lorsque j'en aurai plus... je vous tiendrai au courant.

    Je tag résolu, je vous remercie pour votre participation.

    Couiss

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

Discussions similaires

  1. problème Syntax INNER JOIN sqldatasource
    Par quake3 dans le forum Développement Web avec .NET
    Réponses: 1
    Dernier message: 12/04/2011, 13h48
  2. Réponses: 7
    Dernier message: 13/12/2007, 13h32
  3. [MySQL] syntaxe inner join
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/12/2007, 14h17
  4. Problème sur un Inner Join
    Par Space Cowboy dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/12/2006, 18h13
  5. [Access 2000] Faire un INNER JOIN derrière un LET JOIN
    Par Korskarn dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/03/2006, 11h51

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