On dirait que tu tiens à créer ta requêe SQL en string parce que tu as des paramètre biens précis. Savais-tu que tu peux ouvrir un requête paramétrée comme on ouvre une table?
Exemple de requête paramètrée:
Code :
SELECT * FROM Clients WHERE IdClient = [Id_Client]
À noter ici que [Id_Client] n'est pas un champs de ta table.
Pour ouvrir un recordset sur une requête paramètrée tu procèdes ainsi (ici on veut obtenir le client "22"):
Code :
Dim rsClient As DAO.Recordset
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("reqGetClient")
qdf.Parameters("Id_Client").Value = 22
Set rsClient = qdf.OpenRecordset
'Manipulation du recordset...
rsClient .Close
Set rsClient = Nothing
Set qdf = Nothing
Si tu veux simplement exécuter une requête action (UPDATE, DELETE, etc) tu appelles la méthode Execute:
Code :
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("reqDeleteClient")
qdf.Parameters("Id_Client").Value = 22
qdf.Execute
Set qdf = Nothing
Cela devrait régler ton problème de syntaxe SQL: utilise le générateur d'Access! En passant c'est plus efficace d'ouvrir une requête déja sauvegardée que d'exécuter du code SQL parce que le moteur de la BD doit interpréter à chaque fois la string SQL.
_________________
HTH

This posting is provided "AS IS" with no warranties, and confers no rights cr*sse!