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

Access Discussion :

Erreur sur OpenReport : Expression trop complexe


Sujet :

Access

  1. #1
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut Erreur sur OpenReport : Expression trop complexe
    Bonjour,

    Mon ami fait un stage en entreprise et malheureusement il n'a pas de connexion à Internet, il bloque en ce moment sur une erreur générée par Access sur l'action OpenReport... je pensais pouvoir l'aider mais j'avoue que là je suis paumée !!

    voilà son erreur :

    - Il clique sur un bouton d'aperçu d'un Etat qui affiche les ventes de tous les produits sur 3 mois (donc y a un paquet de données)
    - Et à ce moment là Access lui envoi le message d'erreur : " Erreur d'exécution : L'expression entrée comporte une erreur de syntaxe ou est trop complexe à calculer" (quelque chose dans ce genre)
    On a regardé ensemble cette erreur hier et il n'a aucune erreur de syntaxe.... son état est basé sur une requête comme tout ses autres états mais celui-ci refuse de s'ouvrir.... peut-être y a t'il trop de données ??

    Si quelqu'un sait de quoi il s'agit .....
    Je pourrai vous donner plus d'indications cet après midi sûrement..

    MERCI !

  2. #2
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    J'ai farfouilé un peu sur le net ... il semble que le problème pourrai venir de la requete sur laquelle est basé l'état et en particulier sur ses paramètres...

    Voici la requete source de l'état (Accrochez-vous!):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT PRODUIT.CODE_PRODUIT, PRODUIT.REFERENCE, Round(Sum(LIGNE_COMMANDE.PRIX_UNITAIRE_HT*TRAITER.QTé_LIVRéE),0) AS CA, PRODUIT.DESIGNATION
    FROM (FACTURE INNER JOIN BL ON FACTURE.CODE_FACTURE = BL.CODE_FACTURE) INNER JOIN (COMMANDE INNER JOIN (LIGNE_COMMANDE INNER JOIN (PRODUIT INNER JOIN TRAITER ON PRODUIT.CODE_PRODUIT = TRAITER.CODE_PRODUIT) ON (PRODUIT.CODE_PRODUIT = LIGNE_COMMANDE.CODE_PRODUIT) AND (LIGNE_COMMANDE.CODE_COMMANDE = TRAITER.CODE_COMMANDE) AND (LIGNE_COMMANDE.CODE_PRODUIT = TRAITER.CODE_PRODUIT)) ON COMMANDE.CODE_COMMANDE = LIGNE_COMMANDE.CODE_COMMANDE) ON BL.CODE_BL = TRAITER.CODE_BL
    WHERE (((FACTURE.DATEF) Between [Formulaires]![Formulaire_Gestion_Impression]![date_de_debut] And DateAdd("m",1,[Formulaires]![Formulaire_Gestion_Impression]![date_de_debut])))
    GROUP BY PRODUIT.CODE_PRODUIT, PRODUIT.REFERENCE, PRODUIT.DESIGNATION
    UNION 
    SELECT PRODUIT.CODE_PRODUIT, PRODUIT.REFERENCE, "" AS CA, PRODUIT.DESIGNATION
    FROM (FACTURE INNER JOIN BL ON FACTURE.CODE_FACTURE = BL.CODE_FACTURE) INNER JOIN (COMMANDE INNER JOIN (LIGNE_COMMANDE INNER JOIN (PRODUIT INNER JOIN TRAITER ON PRODUIT.CODE_PRODUIT = TRAITER.CODE_PRODUIT) ON (PRODUIT.CODE_PRODUIT = LIGNE_COMMANDE.CODE_PRODUIT) AND (LIGNE_COMMANDE.CODE_COMMANDE = TRAITER.CODE_COMMANDE) AND (LIGNE_COMMANDE.CODE_PRODUIT = TRAITER.CODE_PRODUIT)) ON COMMANDE.CODE_COMMANDE = LIGNE_COMMANDE.CODE_COMMANDE) ON BL.CODE_BL = TRAITER.CODE_BL
    WHERE PRODUIT.CODE_PRODUIT NOT IN (SELECT PRODUIT.CODE_PRODUIT
    FROM (FACTURE INNER JOIN BL ON FACTURE.CODE_FACTURE = BL.CODE_FACTURE) INNER JOIN (COMMANDE INNER JOIN (LIGNE_COMMANDE INNER JOIN (PRODUIT INNER JOIN TRAITER ON PRODUIT.CODE_PRODUIT = TRAITER.CODE_PRODUIT) ON (PRODUIT.CODE_PRODUIT = LIGNE_COMMANDE.CODE_PRODUIT) AND (LIGNE_COMMANDE.CODE_COMMANDE = TRAITER.CODE_COMMANDE) AND (LIGNE_COMMANDE.CODE_PRODUIT = TRAITER.CODE_PRODUIT)) ON COMMANDE.CODE_COMMANDE = LIGNE_COMMANDE.CODE_COMMANDE) ON BL.CODE_BL = TRAITER.CODE_BL
    WHERE (((FACTURE.DATEF) Between [Formulaires]![Formulaire_Gestion_Impression]![date_de_debut] And DateAdd("m",1,[Formulaires]![Formulaire_Gestion_Impression]![date_de_debut]))))
    GROUP BY PRODUIT.CODE_PRODUIT, PRODUIT.REFERENCE, PRODUIT.DESIGNATION;

    Est il possible qu'access affiche l'erreur 3071, dont je vous ai parlé, parceque la requete est trop longue ???
    Ou bien cela vient-il des paramètres de dates ???

  3. #3
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Pour trouver ze beug dans cette requête, il vaudrait peut-être mieux commencer par décomposer celle-ci et effectuer des tests par SELECT, sans UNION, sans les critères, pour essayer de trouver plus précisement ce qui ne fonctionne pas.

    Salut,

  4. #4
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    Merci du conseil, on va essayer ... cependant, je pense que l'erreur générée par Access ne viens pas du fait qu'il y ait un bug dans la requete,mais plutôt du fait quelle soit grosse...
    Une des solutions serait donc de la couper en deux, mais j'aimerai savoir si il n'y a pas d'autres moyens de passer au travers de l'erreur.... parceque il y a dejà 79 requetes dans cette base et en créer deux pour le prix d'une, ça commence à devenir embêtant!!

  5. #5
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    Bon ben on a coupé la requete en deux partie mais le problème subsiste toujours ... Access affiche :

    " Erreur 3071 :
    Cette expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée. Par exemple, une expression numérique peut contenir des éléments trop compliqués. Essayez de la simplifier en en affectant des parties à des variables.
    "

    Et le debogeur surligne la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DOCMd.OpenReport "Etat_Tous_Produits", acviewPreview

  6. #6
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Bonjour,

    J'ai déjà rencontré ce type de problème...que je n'ai pas directement résolu d'ailleurs...puisque j'ai "imposé" aux utilisateurs des limitations dans les critères de recherche...passons...
    Mais ne serait-il pas possible de faire passer la rqt dans une variable en vba et mettre la variable comme source de l'état...c'est une solution qui m'avait été proposée mais que je n'avais pas testée...ayant choisi la facilité...(pas très pro... )

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  7. #7
    Membre actif Avatar de Mariboo
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 254
    Points : 238
    Points
    238
    Par défaut
    HEUU .. nan ... ça marche pas ... ça fait la même chose

    il ne va pas plus loin que le DoCmd.openReport ....

    Mais merci quand même !

Discussions similaires

  1. Erreur 3071 - Expression trop complexe !
    Par caesar23 dans le forum IHM
    Réponses: 3
    Dernier message: 15/06/2010, 11h26
  2. Réponses: 33
    Dernier message: 16/01/2009, 14h02
  3. Expression trop complexe
    Par taisherg dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/05/2007, 10h36
  4. Expression trop complexe ?
    Par Herman dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2007, 16h07
  5. [VBA-E] Erreur 16 expression trop complexe
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/04/2006, 11h44

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