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 :

Trop de champs définis [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut Trop de champs définis
    Bonjour,
    Je fais une union entre deux tables de 180 colonnes chacune : 360 lignes pour la 1ère et 52 lignes pour la 2nde
    Est-ce normal que j'ai ce message : trop de champs définis

    J'ai souvent aussi des messages de dépassement de capacité juste en changeant le sens de la flèche (de LEFT JOIN à RIGHT JOIN) ou juste en ajoutant un tri.

    Si ça continue comme ça je vais être obligé de laisser tomber Access que j'utilise depuis plus de 13 ans

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 652
    Points : 34 354
    Points
    34 354
    Par défaut
    Salut,

    le nombre de champs dans une requete est limité à 255
    https://support.office.com/fr-fr/art...9-ea9dff1fa854

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    le nombre de champs dans une requete est limité à 255
    https://support.office.com/fr-fr/art...9-ea9dff1fa854
    Il s'agit d'une union entre deux tables de 180 colonnes chacune; donc le nombre de champs est tjrs = à 180, loin de la limite des 255

    Un autre problème récurent : quand je crée ou modifie une requête, le système m'ajoute tjrs une "*"
    C'est à dire au lieu d'avoir : select champ1 from ma table, j'ai : select champ1, * from ma table
    Bonjour la galère

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 652
    Points : 34 354
    Points
    34 354
    Par défaut
    Puis-je te demander comment tu es arrive a avoir 180 champs dans une table ?

    As-tu besoin de tous les champs ? Sont-ils tous remplis ?

    N'y aurait-il pas une possibilite de revoir l'architecture de tes tables ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Puis-je te demander comment tu es arrive a avoir 180 champs dans une table ?

    As-tu besoin de tous les champs ? Sont-ils tous remplis ?

    N'y aurait-il pas une possibilite de revoir l'architecture de tes tables ?
    Les données sont issues d'un questionnaire qui donne une trentaine de colonne par année.
    A partir de là, s'y ajoute des colonnes calculées multipliées pas autant de colonnes que d'années, plus des moyennes triennales
    Tous les champs sont remplis et sont nécessaires

    je crée une requete en mode graphique "select champ1 from ma table", c'est lorsque je me mets en mode sql que je découvre : select champ1, * from ma table

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Peut-on considérer que j'ai atteint les limites avec Access et qu'il va falloir penser à d'autres outils ? SAS est-il plus performant ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 652
    Points : 34 354
    Points
    34 354
    Par défaut
    Salut,

    bien que ca puisse paraitre un poil facile, mais je recommanderai tout de meme de partir sur une structure de table nettement moins compliquee, et de faire un TCD sous Excel ensuite =)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    bien que ca puisse paraitre un poil facile, mais je recommanderai tout de meme de partir sur une structure de table nettement moins compliquee, et de faire un TCD sous Excel ensuite =)
    Comment faire pour rendre la structure de table moins compliquée ?
    J'ai des tables de 300 lignes et 45 colonnes
    NB : pas de clés primaires et pas de liaisons entre les tables, mais elles ont un ou plusieurs champ commun

    Je viens de faire un Req1 LEFT JOIN Req2, j'obtiens 124 lignes et 180 colonnes, mais il me faut rajouter les 2 lignes qui sont dans Req2 et pas dans Req1 et lorsque je fais une union de ces 2 requetes, j'ai le message "trop de champs définis"

  9. #9
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Pour info, il semblerai que dans une requête union, le nombre de champs toutes sources cumulées ne doit pas dépasser 255.

    C-à-d :
    si T1 100 champs
    et T2 100 champs
    et T3 100 champs
    T1 union T2 union T3 donne 300 champs !

    La seule parade que j'ai trouvée c'est de passer par une table temporaire et de faire des requêtes d'ajout.

    A+

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Pour info, il semblerai que dans une requête union, le nombre de champs toutes sources cumulées ne doit pas dépasser 255.

    C-à-d :
    si T1 100 champs
    et T2 100 champs
    et T3 100 champs
    T1 union T2 union T3 donne 300 champs !

    La seule parade que j'ai trouvée c'est de passer par une table temporaire et de faire des requêtes d'ajout.

    A+
    Bonjour,
    Je ne comprends pas ? T1 union T2 union T3 donne 100 champs, pourquoi 300 ?
    champs = colonne

    Autre problème récurent : Access cesse de fonctionner lorsque j'ouvre (ou exécute) une requete qui a déjà été exécuté dans le passé sans problème
    En passant d'Access 2007 à 2010, je croyais avoir résolu ce genre de problèmes, mais ça a empiré

    Mes tables sont souvent des requetes importées de la même base pour contourner le problème

  11. #11
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Je ne comprends pas ? T1 union T2 union T3 donne 100 champs, pourquoi 300 ?
    champs = colonne
    Apparemment lors des requêtes union Access mets les champs (colonnes) côte à côte donc l'union de 3 tables avec 100 champs donne une "table" interne à Access et cachée avec 300 champs.
    Cela dépasse 255, le nombre max de champs, mais au lieu de t'envoyer un message clair Access te raconte que la jointure est impossible :-(.

    Pour ton autre question aucune idée mais je t'invite à ouvrir une discussion à son propos.
    Cela lui donnera une meilleur visibilité donc de meilleurs chance d'avoir une réponse.

    A+

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 177
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Apparemment lors des requêtes union Access mets les champs (colonnes) côte à côte donc l'union de 3 tables avec 100 champs donne une "table" interne à Access et cachée avec 300 champs.
    Cela dépasse 255, le nombre max de champs, mais au lieu de t'envoyer un message clair Access te raconte que la jointure est impossible :-(.

    Pour ton autre question aucune idée mais je t'invite à ouvrir une discussion à son propos.
    Cela lui donnera une meilleur visibilité donc de meilleurs chance d'avoir une réponse.

    A+
    OK, merci
    Pour l'autre souci; il a fallu que je crée une nouvelle requete avec le meme code SQL et ça marche, par contre je vais ouvrir une discussion pour cette histoire d'astérisque

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/09/2010, 11h08
  2. Réponses: 2
    Dernier message: 16/01/2009, 12h45
  3. SQL - trop de champs définis - pourtant "que" 156
    Par debdev dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 15/08/2008, 11h40
  4. Trop de champs définis? Je n'en ai que 12!
    Par wizlord dans le forum Access
    Réponses: 16
    Dernier message: 25/09/2006, 16h23
  5. (Erreur 3190) Trop de champs définis
    Par bart64 dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2005, 20h47

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