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
A voir également:
- Erreur requete sql en VBA
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
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)
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
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é
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 ?
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 ?