Erreur de synthaxe 3075 : opérateur absent [Résolu]

Signaler
Messages postés
5
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2009
-
Messages postés
5
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2009
-
Bonjour,

j'ai un ptit souci, je souhaiterau mettre à jour une requête sql suite à une modification de champs dans un formulaire et exporter ces données dans une feuille excel et un formulaire. Lorsque je clique sur le bouton valider, le programme me renvoit le message d'erreur suivant : erreur de synthaxe (opérateur absent) dans l'expression '[Details_interventions].[num_equipe] = 1 and [Details_interventions].[date_debut_int] après le #16/03/2009#'

Voir ci dessous le code evénement du bouton valider :

    strSELECT = "[Details_interventions].[num_equipe], [Details_interventions].[date_debut_int], [Constituee].[num_employe] "    strFROM "(Equipe INNER JOIN [Details_interventions] ON Equipe.[num_equipe] [Details_interventions].[num_equipe]) INNER JOIN (Employe INNER JOIN Constituee ON Employe.num_employe = Constituee.[num_employe]) ON Equipe.[num_equipe] = Constituee.[num_equipe] "
    
    If cbo_equipe.Enabled = True Then
        strWHERE = " and [Details_interventions].[num_equipe] " & "=" & cbo_equipe 'Affectation à la colonne num_equipe de la requete intervention à cbo_equipe
    End If
    
    If cbo_date.Enabled = True Then
        strWHERE = strWHERE & " and [Details_interventions].[date_debut_int] " & cbo_date & "#" & Format(txt_date, "dd/mm/yyyy") & "#"
        '# est nécessaire pour une interprétation au format date
        'Concaténation de l'équipe et de la date
    End If
    strSQL = "SELECT " & strSELECT
    strSQL = strSQL & "FROM " & strFROM
    strSQL = strSQL & "WHERE " & Mid$(strWHERE, 6) & ";" 'Mid$(chaine,caractere de debut,nbr de caractère)
    CurrentDb.QueryDefs("qry_details_interventions").SQL = strSQL 'Mise a jour de la requete qry_details_interventions
    DoCmd.OpenForm "frm_qry_details_interventions", acNormal 'ouverture du formulaire résultat d'interventions
    DoCmd.OutputTo acQuery, "qry_details_interventions", "MicrosoftExcel(*xls)", "C:\resultats interventions.xls", True, ""
End Sub

Merci de votre aide
A voir également:

8 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
    If cbo_date.Enabled = True Then
        strWHERE = strWHERE
& " and [Details_interventions].[date_debut_int] =
" & cbo_date
& "#" & Format(txt_date, "dd/mm/yyyy") & "#"

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Je n'avait pas tout analyser mais, à priori tu as un problème avec ta clause where sur les dates :

        strWHERE = strWHERE & " and
[Details_interventions].[date_debut_int] " & cbo_date & "#"
& Format(txt_date, "dd/mm/yyyy") & "#"

Je ne sais pas à quoi correspond cbo_date, mais je crois comprendre qu'il te sert à sélectionner l'opérateur. Si c'est ça, ma première réponse était fausse.
Il ne faut pas le = que je t'avais rajouter tout à l'heure. Par contre je crois qu'il faut encadrer la date d'apostrophes :

& " ' #" & Format(txt_date, "dd/mm/yyyy") & "#'"

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #   
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Alors dans ta requette à la place de la valeur du cbo_date il faut que tu mette respectivement <, >, ou =.
Tu ne peux pas mettre directement la valeur du cbo si celle-ci est "avant", "après" ou "le". il faut prevoir une conversion.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Messages postés
5
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2009

Bonjour,

sa na pas l'air d'être ça j'ai toujours la même erreur. Quand je debug c cette ligne qui apparait en jaune :
   CurrentDb.QueryDefs("qry_details_interventions").SQL = strSQL 'Mise a jour de la requete qry_details_interventions

Je l'ai miseen commentaire c'était ok.

Merci
Messages postés
5
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2009

Le cbo permet de choisir :  avant, après ou le pour la date contenu dans le txt_date.

J'ai essayé de mettre les apostrophes mais vb me renvoit la même erreur

merci
Messages postés
5
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2009

Ok merci bien c'était bien ça l'erreur et dire que cela fait 5 heures que je suis dessus.

Par contre maintenant je retrouve le premier enregistrement de la table details_interventions mais quand je simule pour trouver le 2ème, 3ème,... enregistrement la requête se met à jour (critères modifiés) mais dans mon formulaire et dans l'export Excel il n'y a rien.

Merci bcp
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Vérifie ta requette, tu as peut-etre encore une erreur dedans.
Peut-etre au niveau des jointures, tu n'as mis que des INNER JOIN. Donc si une de tes jointures renvoie un champ vide, le résultat sera exclu de ta requette.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #   
Messages postés
5
Date d'inscription
vendredi 15 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2009

Je ne trouve pas l'erreur. Je me remetterai dessus demain, en espérant trouver l'erreur. Merci beaucoup pour ton aide.

A bientôt

Merci encore