[vba access] pb de syntaxe avec openrecordset

Fermé
bob - 31 juil. 2007 à 16:35
 Utilisateur anonyme - 31 juil. 2007 à 19:24
Bonjour,

je souhaite récupérer certaines données d'une table dans un code en vba. Pour cela j'utilise openrecordset mais j'ai des problèmes dans la syntaxe pour arriver à filtrer les informations qui me seront nécessaires.

Je voudrais avoir dans infos uniquement les actions dont le type est le type choisi (dans une liste déroulante) et dont l'année est l'année choisie (dans une liste déroulante aussi)

Dim db As DAO.Database
Set db = CurrentDb

Set infos = db.OpenRecordset("select * from Actions where Actions.Type = " & """" & [Forms]![Menu]!type & """" And "Format(ActionsCorrectives.date, "yyyy") =" & """" [Forms]![Menu]!AnneeChoisie & """" )


mais ce code donne une erreur 424 objet requis..

pouvez vous me dire ce qui cloche?

merci

3 réponses

Utilisateur anonyme
31 juil. 2007 à 19:24
re:

dans un cas comme celui-ci, je commence toujours par pousser la chaine SQL dans un variable string !

Dim db As DAO.Database, ChaineSQL As String
Set db = CurrentDb

ChaineSQL = "Select * From Actions Where Actions.Type = " & """" & [Forms]![Menu]!Type & " And Format(ActionsCorrectives.date," & """" & "yyyy" & """" & ") =" & """" & [Forms]![Menu]!AnneeChoisie & """"

à l'aide d'un point d'arrêt, assure toi que le syntaxe de la requête SQL est correct !

La valeur dans chaine doit être accepter lors d'un copier/coller dans les requêtes en mode SQL.

si la chaine est bonne alors :

Set infos = Db.OpenRecordset(ChaineSQL)

Est-ce clair ?

Lupin
2
Utilisateur anonyme
31 juil. 2007 à 17:16
Bonjour,

Pas testé, n'ayant pas la base !!!

    Set infos = Db.OpenRecordset("Select * From Actions Where Actions.Type = " & """" & [Forms]![Menu]!Type & " And Format(ActionsCorrectives.date," & """" & "yyyy" & """" & ") =" & """" & [Forms]![Menu]!AnneeChoisie & """")

Lupin
1
merci de m'aider

mais ce que tu me proposes donne une erreur de syntaxe 3075...
0