Erreur requete sql en VBA

Euforia -  
 fiu -
Bonjour,

J'ai un probleme sur une simple requete selection, je vous passe mon code :

Private Sub Titre_AfterUpdate()
Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
Dim sSQL As String
' Ouverture de la base de données
Set db = CurrentDb()
SQL = "Select * From T_Film WHERE T_Film.Titre = " & Me![Titre]
MsgBox sSQL
' Ouverture du recordset
Set rst = db.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
End Sub

Il me sort cette erreur : Erreur syntaxe (operateur absent) dans l'expression "T_Film.titre = la maison du diable"

Merci de votre aide

4 réponses

  1. fiu
     
    Salut

    en SQL, les chaines de caractères doivent être délimitées par des apostrophes.
    donc la ligne avec la requete doit être
    SQL = "Select * From T_Film WHERE T_Film.Titre = '" & Me![Titre] & "'"
    ou
    SQL = "Select * From T_Film WHERE T_Film.Titre = " & chr(39) & Me![Titre] & chr(39)
    0
  2. Euforia
     
    Merci beaucoup ce fonctionne, une derniere question,

    Voici mon code

    Set rst = db.OpenRecordset(sSQL, dbOpenDynaset, dbReadOnly)
    rst.MoveFirst
    Me![Disponibilite] = rst("Disponibilite")
    rst.MoveNext
    Me![ID_Film] = rst("ID8Film")

    il me sort une erreur pour ID_FILM : les enregistrement de la table ne devrait pas se trouve cote 'un'

    Merci de votre aide
    0
    1. GégéLAMBERT Messages postés 537 Date d'inscription   Statut Membre Dernière intervention   10
       
      Bonjour,

      peut-être as-tu trouvé, mais voici deux remarques:
      Me![ID_Film] = rst("ID8Film") devrait être Me![ID_Film] = rst("ID_Film")

      Pourquoi un MoveNext au milieu ?
      Si ta requête se fait sur le titre du film, tu ne dois avoir qu'un enregistrement dans ton recordset. Le MoveNext te fait passer à l'enregistrement suivant...

      Gégé
      0
  3. Euforia
     
    Merci, mais ca ne resout pas mon probleme d'enregistrement de la table qui ne devrait pas se trouve cote 'un'...
    0
  4. fiu
     
    Salut,

    Je pige pas ce qu'est ce "un" dont tu causes. Si c'est un élément de ton requêtage, pourquoi ne le voit-on nulle part ?
    Si la problématique concerne la logique de ta programmation ou des éléments du langage que tu utilises, pourquoi ne pas s'adresser aux spécialistes de la programmation dans le forum programmation ?
    0