Erreur de synthaxe 3075 : opérateur absent

Résolu
aureliendes Messages postés 5 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 5 avril 2009 - 5 avril 2009 à 15:06
aureliendes Messages postés 5 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 5 avril 2009 - 5 avril 2009 à 19:32
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

8 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 avril 2009 à 16:34
    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 #   
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 avril 2009 à 17:43
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 #   
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 avril 2009 à 17:54
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 #   
3
aureliendes Messages postés 5 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 5 avril 2009
5 avril 2009 à 17:02
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aureliendes Messages postés 5 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 5 avril 2009
5 avril 2009 à 17:49
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
0
aureliendes Messages postés 5 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 5 avril 2009
5 avril 2009 à 18:10
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 avril 2009 à 18:16
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 #   
0
aureliendes Messages postés 5 Date d'inscription vendredi 15 décembre 2000 Statut Membre Dernière intervention 5 avril 2009
5 avril 2009 à 19:32
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
0
Rejoignez-nous