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 :

cette expression présente une syntaxe incorrecte [AC-2000]


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut cette expression présente une syntaxe incorrecte
    Bonjour à tous,
    J'élève des brebis (400), et je gère mon troupeau grâce à Access version 2000. Jusqu'ici je ne m'en sortais pas trop mal, sauf que j'ai vendu des agneaux hier, et si j'en rentre plus que 9 (j'en ai vendu 43), la macro que j'ai créée pour voir les agneaux vendus selon les dates de vente me donne le message suivant: "l'expression présente une syntaxe incorrecte, ou est trop complexe pour être évaluée..." J'ai cherché partout sur internet une solution à ce problème, je ne connais pas du tout le language VBA ou SQL, je fais tout par requete, ça marchait jusqu'à présent, mais là, mon état ne veut pas s'ouvrir. Alors que la requête s'ouvre sans problème.Dans ma macro (cases à cocher: toutes les ventes, ou vente par date, ou vente par année, si je coche par année et 2009, il me sort "dépassement de capacité", si c'est 2008, ça marche. Je ne peux en fait plus rajouter de dates de vente.
    Y a t'il dans Access quelque chose qui limite le nombre d'enregistrements? J'ai du rentrer environ 900 agneaux nés depuis que j'ai créé la base de données, ça marche quand je rentre les naissances, mais pas si je rajoute une date de vente dans ma table "agneau", alors que l'agneau lui même est rentré sans problème....
    Dites moi ce que je dois faire pour vous montrer s'il ya un language qui s'est mis tout seul quand je créais mes requêtes, ça, je n'y connais rien du tout !
    J'ai mis beaucoup de temps à faire cette base de donnée, je suis assez fière du résultat, ça me sert beaucoup, ça m'ennuie vraiment de caler là dessus !
    Merci de votre aide.
    anestel

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonsoir,

    C'est difficile de te répondre sans avoir plus d'explications sur la structure de ta base.

    Tu peux déjà poster le code SQL de ta requête. En mode création de ta requête, menu ==> Affichage ==> Mode SQL. Tu sélectionnes et tu copies le code, que tu colles dans ta prochaine discussion (merci de ne pas oublier les balises de code, bouton # au-dessus de la fenêtre de rédaction des messages).

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut re
    Merci de m'avoir répondu!

    Je vais essayer d'expliquer un peu mieux ma base: J'ai, en tables qui servent pour cette requête: ADULTES, AGNELAGE, AGNEAU, VENTES.
    Les clefs primaires dans ADULTES sont le numéro de travail de la brebis ou du bélier, qui a 5 chiffres importants, (ce qui est marqué sur leurs boucles d'oreilles, ( les moutons ont des boucles, c'est obligatoire, pour la tracabilité) . Dans la table AGNELAGE qui est reliée à ADULTE, la clef est le numéro d'agnelage, c'est un numéro automatique , et la relation se fait par le numéro de la brebis; dans la table AGNEAU qui est reliée à la table AGNELAGE, la clef est le numéro de boucle de l'agneau et la relation se fait avec le numéro d'agnelage vers la table AGNELAGE et le numéro de la mère vers la table ADULTE. Une brebis n'a qu'un numéro, peut avoir plusieurs agnelages. Un agneau n'a qu'une mère, et ne peut être né que d'un agnelage.
    En ce qui concerne la table VENTES, c'est une table qui se remplit avec une requête ajout, chaque fois que je vends un agneau, à partir du moment où j'ai été payée, quand je rentre le prix de l'agneau, ça s'ajoute dans la table VENTES.
    J'ai 2 requêtes ajout pour remplir cette table VENTES, selon que les agneaux ont été vendus au groupement, ou si ce sont des adultes qui ont été vendus.
    bon j'espère que je ne fais pas de bétises en copiant le SQL des requête.
    Déjà, le code des 2 requêtes ajout, c'est pour la première:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO VENTES ( ANIMAL, SEXE, RACE, [DATE NAISSANCE], [RAISON SORTIE], [DATE SORTIE], [PRIX VENTE] )
    SELECT ADULTES.BREBIS, ADULTES.SEXE, ADULTES.RACE, ADULTES.[DATE NAISS], ADULTES.[RAISON SORTIE], ADULTES.[DATE SORTIE], ADULTES.[PRIX VENTE]
    FROM ADULTES
    WHERE (((ADULTES.[RAISON SORTIE])="BOUCHERIE" Or (ADULTES.[RAISON SORTIE])="ELEVAGE"));
    Ca c'est pour les adultes qui partent à la réforme.

    La deuxième:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO VENTES ( ANIMAL, RACE, SEXE, [DATE SORTIE], [DATE NAISSANCE], [RAISON SORTIE], [PRIX VENTE] )
    SELECT [REQUETE VENTE ET CLASSEMENT AGNEAUX].AGNEAU, [REQUETE VENTE ET CLASSEMENT AGNEAUX].RACE, [REQUETE VENTE ET CLASSEMENT AGNEAUX].SEXE, [REQUETE VENTE ET CLASSEMENT AGNEAUX].[DATE SORTIE], [REQUETE VENTE ET CLASSEMENT AGNEAUX].[DATE NAIS], [REQUETE VENTE ET CLASSEMENT AGNEAUX].[RAISON SORTIE], [REQUETE VENTE ET CLASSEMENT AGNEAUX].[PRIX HT]
    FROM [REQUETE VENTE ET CLASSEMENT AGNEAUX]
    WHERE ((([REQUETE VENTE ET CLASSEMENT AGNEAUX].[RAISON SORTIE])="BOUCHERIE" Or ([REQUETE VENTE ET CLASSEMENT AGNEAUX].[RAISON SORTIE])="ELEVAGE") AND (([REQUETE VENTE ET CLASSEMENT AGNEAUX].[PRIX HT])>0));
    Ca, c'est pour les agneaux qui partent à la boucherie.
    Cette requête vient d'une autre requête basée sur la table AGNEAU:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT AGNEAU.AGNEAU, AGNEAU.MERE, AGNEAU.RACE, AGNEAU.SEXE, AGNEAU.[DATE NAIS], AGNEAU.[DATE SORTIE], AGNEAU.[POIDS CARC], AGNEAU.[PRIX VENTE], AGNEAU.[PRIX CCP], AGNEAU.[CLASSEMENT EUROPE], AGNEAU.[RAISON SORTIE], [POIDS CARC]*([PRIX VENTE]+[PRIX CCP]) AS [PRIX HT]
    FROM AGNEAU
    WHERE (((AGNEAU.[RAISON SORTIE])="BOUCHERIE" Or (AGNEAU.[RAISON SORTIE])="ELEVAGE") AND ((AGNEAU.[MORT 1 GARDE 2 BOUCHERIE 3 ELEVAGE 4 VD 5])>2));

    Maintenant, voilà la requête en question que j'ai créée pour faire mon état des ventes, soit toutes les ventes, soit par date de vente soit par année, mais ça c'est la macro qui choisit tout ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [PRIX VENTE AGNEAUX].[AGNEAU], Left([AGNEAU],5) AS AGN, [PRIX VENTE AGNEAUX].[MERE], [PRIX VENTE AGNEAUX].[RACE], [PRIX VENTE AGNEAUX].[SEXE], [PRIX VENTE AGNEAUX].[DATE NAIS], [PRIX VENTE AGNEAUX].[RAISON SORTIE], [PRIX VENTE AGNEAUX].[DATE SORTIE], [PRIX VENTE AGNEAUX].[CLASSEMENT EUROPE], [PRIX VENTE AGNEAUX].[POIDS CARC], [PRIX VENTE AGNEAUX].[PRIX VENTE], [PRIX VENTE AGNEAUX].[PRIX CCP], [PRIX VENTE AGNEAUX].[PRIX HT], [DATE SORTIE]-[DATE NAIS] AS [AGE A LA VENTE], Year([DATE SORTIE]) AS ANNEE, [PRIX VENTE AGNEAUX].[RENDEMENT]
    FROM [PRIX VENTE AGNEAUX]
    WHERE ((([PRIX VENTE AGNEAUX].[RAISON SORTIE])="BOUCHERIE"));
    Un état est basé sur cette dernière requête, je ne peux pas vous mettre de code, il ne me le propose pas dans le menu affichage....
    La macro choisit ce qui doit être inscrit dans cet état, je veux bien vous la mettre, mais je ne sais pas comment faire, pareil, il n'y a pas de possibilité de SQL dans le menu affichage en création???
    Je me demande si dans la liste des dates de vente que la macro me propose, en fait il n'y en a pas trop. J'ai pensé retirer de la table les agneaux vendus sur 2008, comme ça je n'aurai plus de ventes en 2008 et peut-être plus de place pour les ventes 2009, mais ça m'ennuie, car j'ai besoin de connaitre la carrière de chaque brebis, savoir qui m'en a fait 2 et quand, qui n'en a fait aucun, qui ne fait que des mâles ou qui ne fait que des femelles, c'est important pour la suite, et si j'enlève des agneaux de ma table AGNEAUX tout va être faussé, où bien alors il faudrait que je base les recherche (qui a fait qui) sur cette table, ça me ferait une base de donnée encore plus grande...
    Ce qui m'embête, c'est que tout ce que j'ai trouvé sur Internet en réponse au message, c'était que les calculs font des valeurs trop grandes. Or il n'y a pas de calcul sur les dates, il s'agit simplement de sélectionner les agneaux qui sont partis à telle ou telle date....
    J'espère que vous pourrez m'aider... Ca fait un an qu'on est installés, on ne gagne pas encore notre vie avec ça, mais cette base de donnée, si elle m'a pris beaucoup de temps à faire, m'en fait maintenant gagner beaucoup, surtout que l'agnelage a commencé... Une petite photo pour vous montrer ! Je l'ai mise en pièce jointe, c'est un petit agneau noir qui est né il y a 4 jours...
    Images attachées Images attachées  

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut re
    Et bien j'ai trouvé l'erreur, qui n'avait rien à voir avec les dates:
    Sur mon formulaire pour inscrire le prix et le poids des agneaux vendus, j'avais un contrôle "rendement" qui calcule le pourcentage entre le poids vif et le poids de carcasse, et curieusement, sur ceux dont j'ai noté la sortie hier, je n'avais pourtant pas rentré le poids vif, mais sur certains, dans le contrôle "rendement" était inscrit "#erreur". J'ai supprimé ces lignes d'erreur qui s'étaient mises je ne sais pas pourquoi ni comment, et maintenant ça marche !
    Merci quand même de votre aide !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,
    D’abord félicitations
    - pour ta base qui même s'il y a eu problème, et qui n'en a pas eu, parait au premier abord très intéressante.
    - Pour la photo « super mignon de ce petit agneau »
    - Pour votre courage et votre persévérance on a besoins de vous pour continuer à avoir accès aux bons produits de notre pays. (oui je suis chauvin et alors).
    Ensuite pour l’erreur elle ne sait pas mise par hasard – un champ calculé qui n’as pas toutes les données au départ pour faire son calcul c’est ce qui semble être le cas si tu ne lui as pas passé le critère poids vif il mentionne erreur ! s'il fait partie de la requête il va forcément déclencher également une erreur.
    Je ne connais pas suffisamment ta base mais il faudrait éviter que ce champ comporte ce type d’erreur : peut-être en faisant figurer le fonction nz() devant les critères pour que le résultat soit 0 par défaut.
    Enfin j’espère quand même que tu as trouvé la solution définitivement. Bien sur n’hésites pas à revenir nous voir, ne serais-ce que pour des nouvelles du petit agneau.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut re
    Merci pour les encouragements,
    Je vais vérifier pourquoi il m'a marqué #erreur, et s'il y a de nouveau un problème je ferai appel à vous de nouveau !
    Le petit agneau va bien, il y en a 9 de nés hier, je voulais vous mettre une photo de la maman et ses 3 petits, qui a agnelé devant nous hier soir à minuit....mais mon quota de pièces jointe dépasse de 23 k,même si je la compresse ! désolée. j'essaye autrement...

    Chouette ça a marché...
    C'est hors sujet, je sais, mais c'est si mignon ! Encore merci.

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

Discussions similaires

  1. Syntaxe expression dans une zone de texte
    Par Christ79 dans le forum IHM
    Réponses: 4
    Dernier message: 18/12/2013, 13h50
  2. [RegEx] expression qui valide phrase ayant une syntaxe précise
    Par trankil dans le forum Langage
    Réponses: 7
    Dernier message: 22/07/2010, 10h41
  3. Syntaxe incorrecte vers 'where'.
    Par lepeintre dans le forum ASP
    Réponses: 15
    Dernier message: 19/05/2005, 11h57
  4. [langage] comprendre une syntaxe particulière
    Par mat21 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2004, 18h12
  5. [RICHEDIT] -> Coloriser une syntaxe ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/01/2004, 12h57

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