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 :

Erreur expression qui présente une syntaxe incorrecte


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut Erreur expression qui présente une syntaxe incorrecte
    Bonjour à tous,

    Je suis étudiant en master contrôle de Gestion

    Dans le cadre de mon alternance je dois modifier une base de donnée qui va suivre les dépenses de chaque département de l'entreprise

    Le plus gros a été fait il y a 10 ans, et les requêtes et états ne marche que sur un PC, celui de ma tutrice…

    Après avoir vu avec l'informatique au bureau, nous n'arrivons pas vraiment à comprendre, quand j'essaye de lancer une requête : j'ai le message suivant :

    Nom : message d'erreur access.png
Affichages : 522
Taille : 6,8 Ko

    Le problème viens sûrement de comment la requête a été codé à l'époque.

    Je voulais savoir si il était quand même possible de voir le code SQL et les relations de la requête. Je n'y connais pas grand chose mais vu que je ne peux pas exécuter la requête et les états, je n'ai pas accès aux codes / relations

    J'ai besoin de voir comment les requêtes ont été faites pour réaliser mon travail.

    Nom : version.png
Affichages : 502
Taille : 2,6 Ko

    Merci d'avance pour votre aide !

  2. #2
    Modérateur

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

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

    Ça ressemble à un problème de références manquantes.
    Va dans l'éditeur de code VBA et ouvre le menu Outils puis Références.
    Regarde si Access n'en signale pas une ou plusieurs manquantes.

    Bon si ce n'est pas cela, es-tu capabale d'ouvrir la requête en mode modification ?
    Si oui, tu devrais voir facilement les tables et jointures faites.

    Si non laisse le savoir.

    Aussi pour voir le modèle et les relations tu peux aller dans l'onglet Outils de Base de données et appuyer sur l'Icône Relations. Si cela a été bien fait, tu devrais voir les tables et leurs relations.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse rapide,

    J'ai été voir dans l'éditeur de code VBA,

    Nom : référence manquantes.png
Affichages : 501
Taille : 8,5 Ko

    J'ai une dizaine de références cochés, mais un paquet sont manquantes. Comment puis-je savoir ce qu'il me manque pour exécuter les requêtes?

    En faites pour arriver en mode création, il faut obligatoirement exécuter la requête non ? J'ai une requête qui marche j'arrive donc à accéder au mode création.

    Pour celles que je veux, j'ai directement le message d'erreur vu plus haut, du coup je ne peux pas aller plus loin

    Et pour finir justement, quand je vais dans l'icone relations, voir toutes les relations je n'ai rien qui s'affiche la page reste vide

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 332
    Points : 23 787
    Points
    23 787
    Par défaut
    Citation Envoyé par Eddie6888 Voir le message

    J'ai une dizaine de références cochés, mais un paquet sont manquantes. Comment puis-je savoir ce qu'il me manque pour exécuter les requêtes?
    Aucune idée mais à priori tu ne devrais avoir aucune références manquantes, ça perturbe Access.

    En faites pour arriver en mode création, il faut obligatoirement exécuter la requête non ?
    Non, tu peux cliquer droit sur le nom de la requête puis cliquer sur Mode Création.

    Et pour finir justement, quand je vais dans l'icone relations, voir toutes les relations je n'ai rien qui s'affiche la page reste vide
    Oui cela arrive, il a y des gens qui n'ont pas tout à fait compris la partie "Relationnelle" dans "Base de données relationnelle" donc il est possible qu'il n'y ai aucune relation définies.

    A tout hazard, tu peux essayer, dans la fenêtre relations de cliquer droit puis de chosir "Afficher toutes les relations." mais il n'y a rien de garanti.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 686
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 686
    Points : 14 686
    Points
    14 686
    Par défaut
    bonjour,
    En faites pour arriver en mode création, il faut obligatoirement exécuter la requête non ?
    heureusement que non, le fait de l'exécuter met à jour les données si c'est une requête Action (mise à jour, création, suppression). Il faut juste cliquer sur la requête (une seule fois, 2 fois revient à l'exécuter), puis avec bouton de droite sélectionner Mode création dans le menu contextuel et surtout pas Ouvrir qui correspond aussi à l'exécution de la requête.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Ah d'accord, je me posais la question parce que justement je n'ai pas d'autre choix que de l'exécuter, quand je clique droit rien ne se produit ..

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Merci à vous de m'avoir mis sur la piste, j'avais un paramètre désactivé dans les options, du coup mon clique droit ne pouvait pas marcher !

    Je peux désormais consulter le code et les relations

    Je reviendrais peut être vers vous pour mon message d'erreur initial

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Rebonjour,

    Je pense avoir trouvé l'origine de mon problème. Dans une requête, il y a une formule de somme de cellule en format texte…

    Je ne peux pas toucher au format des cellules directement dans la table car cela me supprime des données pour je ne sais quelle raison.

    J'ai donc essayé de créer une requête qui me permettrait de convertir en nombre et ensuite de me faire la somme de ce que je souhaite.

    Cependant, j'ai le message d'erreur suivant qui s'affiche

    Nom : message bug.PNG
Affichages : 500
Taille : 27,1 Ko

    Nom : bug.PNG
Affichages : 479
Taille : 3,0 Ko

    Pouvez-vous m'indiquez svp, l'erreur dans l'utilisation de ma formule ?

    Pour information, "DPT" correspond au numéro de département de l'entreprise, "libellé obj account" concerne la nature de la dépense comme par exemple des charges sociales, P01 correspond à la première année de la période fiscale (il faut donc la même formule de p01 à p12), "YTD Balance" est la somme de P01 à P12

    Il faudrait par exemple que j'obtienne une seule ligne de charge sociale pour le département qualité.

    Merci d'avance, et restant à votre disposition si vous avez besoin de plus d'informations

  9. #9
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 886
    Points : 4 767
    Points
    4 767
    Par défaut
    et qu'est-ce c'est ce critere val(P01) sous P01 ??? il n'a rien à faire là

    cdlt
    "Always look at the bright side of life." Monty Python.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    En fait, j'essayais de convertir le champ p01 en nombre car quand j'essaye de faire la somme de p01 à p12 j'ai une erreur.Je pense que c'est parce que le champ est en texte.

    Nom : bug 2.PNG
Affichages : 508
Taille : 27,8 Ko

  11. #11
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 886
    Points : 4 767
    Points
    4 767
    Par défaut
    Si je comprends bientes P01,... P10 sont en format texte !!!

    alors dans ta requete au lieu de P01, P02, ...P010
    il faut déjà utiliser une conversion (ici en Double car je n'en sais pas plus sur tes nombres) : mtP01: cdbl(nz([P01;0)) ... mtP10:cdbl(nz(P10;0)) as mt10
    alors tu pourras grouper et sommer ces montants.

    la fonction NZ remplace une chaine vide ou nulle par un 0 (voir l'aide par F1)
    la fonction CDBL convertit la valeur en un double
    "Always look at the bright side of life." Monty Python.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse,

    Oui les périodes (P01 à P12) sont bien en texte voici un exemple de la table :

    Nom : table.png
Affichages : 123
Taille : 48,2 Ko

    Je n'ai pas vraiment compris pour la réponse, il faut que j'insère mtP0x: cdbl(nz([P0x;0)) pour chaque période dans le critère, où bien je peux faire tout en un coup ? Mon dernier champ est YTD Balance qui est la somme de la ligne

    Comme ça ou je n'ai vraiment rien compris ? J'ai essayé plusieurs fois sur tous les champs mais j'ai le même message d'erreur

    Nom : bug5.png
Affichages : 125
Taille : 22,4 Ko

    Désolé je débute vraiment sur access..

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 686
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 686
    Points : 14 686
    Points
    14 686
    Par défaut
    bonsoir,
    ce n'est pas sur la ligne Critères (qui sert pour filtrer les enregistrements) qu'il faut mettre la formule mais sur la ligne Champs et il faut le faire pour tous les champs:

    Nom : _0.JPG
Affichages : 509
Taille : 23,0 Ko
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Toujours le même d'erreur en essayant avec seulement une période pour tester ..

    Tout est bien correct sur mon screen ?

    Nom : bug calcule.png
Affichages : 514
Taille : 22,6 Ko

  15. #15
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 886
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 886
    Points : 4 767
    Points
    4 767
    Par défaut
    Alors envoie-nous tes 2 tables avec leur contenu
    "Always look at the bright side of life." Monty Python.

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 686
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 686
    Points : 14 686
    Points
    14 686
    Par défaut
    bonjour,
    - est-ce que [N/A] et [ORACLE N/A] sont de même type ?

    - autre chose, si le séparateur de décimales est la virgule, il faudrait remplacer le point par la virgule dans les champs P01 à P12. Tu peux aussi remplacer Expr1 par un nom plus parlant comme l'exemple donné par micniv, mtP01:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mtp01:CDbl(Nz(Replace([P01];".";",");0))
    encore autre chose: il faut enlever les champ sommés (P01, P02, ...) du regroupement sinon ils ne seront pas cumulés
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Oui les deux champs sont en texte court dans mes deux table

    On m'avait déjà dit qu'il y avait peut être un problème sur le séparateur …

    Toutes les requêtes marche sur un seul autre pc ce qui est assez étonnant et je n'arrive pas à comprendre

    Nom : bug 6.png
Affichages : 484
Taille : 22,8 Ko

    J'essayais de recréer les requêtes une par une mais peut être que la solution est bien plus simple…

  18. #18
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 686
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 686
    Points : 14 686
    Points
    14 686
    Par défaut
    pourquoi la table contient du texte: est-ce par ce que c'est une table importée ?
    Dans ce cas, ce n'est peut-être pas une valeur nulle qui est stockée mais une valeur vide.
    La fonction Nz() ne gère que les valeurs nulles, essaie en remplaçant par Iif():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mtp01:CDbl(Replace(Iif([P01]="";"0";[P01]);".";","))
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 686
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 686
    Points : 14 686
    Points
    14 686
    Par défaut
    ou alors, je n'ai pas les yeux en face des trous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mtp01:CDbl(Nz(Replace([P01];".";",");"0"))
    vu que c'est du texte, il faut mettre "0" et pas 0, je m'en suis rendu-compte en postant la solution précédente ... à essayer également
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. [AC-2013] multicritère: Cette expression présente une syntaxe incorrecte, ou est trop complexe
    Par carlito0205 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/04/2018, 13h00
  2. [AC-2000] cette expression présente une syntaxe incorrecte
    Par anestel dans le forum Access
    Réponses: 5
    Dernier message: 09/08/2009, 16h48
  3. Réponses: 1
    Dernier message: 26/02/2009, 15h38
  4. [Erreur] algorithme qui calcul une moyenne
    Par quaresma dans le forum Algorithmes et structures de données
    Réponses: 29
    Dernier message: 24/04/2008, 20h58
  5. Réponses: 2
    Dernier message: 31/07/2007, 14h23

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