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 :

Colonne liée basée sur une concaténation de champs dans une requête. Message d'erreur


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Colonne liée basée sur une concaténation de champs dans une requête. Message d'erreur
    Bonjour,

    Sous Access 2007, en mode affichage d’une table, le clic sur l’en-tête d’une colonne liée pour accéder aux fonctions de filtre affiche une erreur lorsque le champ lié est une concaténation de champs :
    « Erreur de syntaxe dans la requête. La clause de la requête est incomplète »

    Exemple :

    Table PARENT :
    idParent (clé primaire)
    champ1
    champ2
    champ3

    Table ENFANT :
    idEnfant (clé primaire)
    idParent
    Colonne liée basée sur la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      select idParent, [champ1] & " " & [champ2] & " " & " " & [champ3] AS nomComplet from PARENT
    Colonne liée : 1
    Nbre colonnes : 2
    Largeurs colonnes : 0cm;3cm

    Une relation un à plusieurs est créée entre PARENT et ENFANT liées par le champ « idParent ».

    Pourtant,
    - En mode création, la requête s’exécute normalement : il n’y a donc pas d’erreur de syntaxe
    - la colonne liée s’affiche normalement sous la forme de liste déroulante dans la table ENFANT

    Mais l’accès au filtre sur l’en-tête de colonne affiche systématiquement l’erreur
    « Erreur de syntaxe dans la requête. La clause de la requête est incomplète ».

    L’accès au filtre d’une colonne liée basée sur une requête contenant des caractères spéciaux tels que « & » pour concaténer semble poser problème.

    Cette concaténation m’est nécessaire de façon à filtrer dans une table ENFANT sur un parent à partir de plusieurs champs concaténés (exemple : dans une table « commandes », filtre sur un client à partir de son nom + prénom + société concaténés).

    Y a-t-il une solution pour corriger le problème et faire disparaître ce message d’erreur ?

    Merci d'avance de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Bonjour,

    L'utilisation des Liste de choix dans les tables à des limites. Personnellement je ne les utilise pas. Je préfère faire une bonne IHM.

    Ce que tu peux cependant tenter, sans garantie de résussite, c'est mettre cette requête dans un objet.

    Tu crées une requête, tu y colles ton instruction SQL (c'est le SELECT) tu l'enregistres avec un nom approprié et dans la table tu fais référence à ce nom de requête nouvellement créée en lieu et place du select.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci de ta réponse. Mais j'avais déjà effectué cette solution, qui amène au même résultat.
    Je vais suivre ton conseil de simplifier la colonne liée et d'améliorer le formulaire correspondant.
    Bonne soirée.

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    c'est bizarre que ca marche pas, tu peux essayer: dans la table Parent, tu crees un champ calcule, qui servira dans le lookup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomComplet= [champ1] & " " & [champ2] & " " & " " & [champ3]

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 595
    Points
    24 595
    Par défaut
    J'ai testé en version 2013 et dans les conditions indiquée... aucun problème.

    Essaye de faire un compactage de la bdd.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je pense qu'en Access 2007 la concaténation de champs dans une colonne liée n'est pas possible à cause du caractère "&" mal interprété.
    Et je ne peux pas non plus avoir recours aux champs calculés dans la table PARENT pour faire le test, puisque cette fonctionnalité n'est accessible qu'à partir d'Access 2010.

    Je vais donc me résoudre à simplifier la colonne liée. Dommage.
    Merci en tous cas pour vos conseils.

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Bonjour,

    Je t'arrête tout de suite concernant le &. Il fonctionne depuis la version 2.0 d'ACCESS (1992) sans aucun problème. J'ai, et vois régulièrement, des applications qui utilise cet opérateur autant dans les requêtes que dans le code ou les expressions.
    Le problème n'est pas là.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Webplanneur
    Inscrit en
    Mars 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Mars 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Impossible de m'arrêter
    Maladroit cette remarque.

    Je confirme que la requête utilisant des champs concaténés fonctionne très bien, et la colonne liée s'affiche également avec la concaténation attendue.
    Mais c'est le clic sur l'en-tête d'une colonne liée qui affiche le message d'erreur, bien que le filtre puisse être ensuite utilisé : un simple champ ça marche, la concaténation de champs affiche systématiquement ce message d'erreur sous Access 2007.

Discussions similaires

  1. Concaténer deux champs dans une table
    Par Yamina62 dans le forum Modélisation
    Réponses: 4
    Dernier message: 30/09/2013, 14h11
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. Réponses: 24
    Dernier message: 23/06/2009, 17h06
  4. Bloquer sur le nombre de champs dans une table
    Par fredsete dans le forum Modélisation
    Réponses: 4
    Dernier message: 13/10/2008, 12h01
  5. [C#] Concaténer 2 champs dans une liste déroulante
    Par wil4linux dans le forum ASP.NET
    Réponses: 8
    Dernier message: 28/06/2006, 08h57

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