Erreur requete sql en VBA
Euforia
-
fiu -
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
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
-
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) -
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-
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é
-
-
Merci, mais ca ne resout pas mon probleme d'enregistrement de la table qui ne devrait pas se trouve cote 'un'...
-
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 ?