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

aureliendes 5 Messages postés vendredi 15 décembre 2000Date d'inscription 5 avril 2009 Dernière intervention - 5 avril 2009 à 15:06 - Dernière réponse : aureliendes 5 Messages postés vendredi 15 décembre 2000Date d'inscription 5 avril 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 avril 2009 à 16:34
3
Merci
    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 #   

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 avril 2009 à 17:43
3
Merci
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 #   

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_casy
Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 avril 2009 à 17:54
3
Merci
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 #   

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

Commenter la réponse de cs_casy
aureliendes 5 Messages postés vendredi 15 décembre 2000Date d'inscription 5 avril 2009 Dernière intervention - 5 avril 2009 à 17:02
0
Merci
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
Commenter la réponse de aureliendes
aureliendes 5 Messages postés vendredi 15 décembre 2000Date d'inscription 5 avril 2009 Dernière intervention - 5 avril 2009 à 17:49
0
Merci
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
Commenter la réponse de aureliendes
aureliendes 5 Messages postés vendredi 15 décembre 2000Date d'inscription 5 avril 2009 Dernière intervention - 5 avril 2009 à 18:10
0
Merci
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
Commenter la réponse de aureliendes
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 avril 2009 à 18:16
0
Merci
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 #   
Commenter la réponse de cs_casy
aureliendes 5 Messages postés vendredi 15 décembre 2000Date d'inscription 5 avril 2009 Dernière intervention - 5 avril 2009 à 19:32
0
Merci
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
Commenter la réponse de aureliendes

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.