Contourner les apostrophes lors d'une recherche dans un Recordset
13 réponses
IM
Bonjour,
N'ayant pas programmé depuis longtemps, je ne me souviens plus
des astuces pour contourner le problème des apostrophes (dans les phrases en
français) lors d'une recherche dans un Recordset. Toute suggestion serait
grandement appréciée!
J'ai réécris ton code en ADO et cela plante à l'enregistrement (bien sur)
Oui bien sur, et ce n'est pas du à ADO. En DAO, c'est 100% identique si on fait l'insertion avec un INSERT statement, il faut bien sur faire la même manip de doublage des quote.
Voici exactement le même programme que toi, en DAO:
Dim db As Database Dim rs As Recordset Dim szTitle As String Dim SQL As String
Set db = OpenDatabase("c:bd1.mdb") Set rs = db.OpenRecordset("Table1")
szTitle = "L'ile au trésor, un livre d'aujourd'hui!"
Set rs = db.OpenRecordset("SELECT * FROM TABLE1 WHERE Titre = '" & szTitle & "'") MsgBox rs.Fields("Titre")
rs.Close db.Close
Et bien entendu, du coup, ça fonctionne parfaitement.
On a écrit qq chose de parfaitement générique, qui fonctionne dans tous les cas, en DAO comme en ADO. Et si on exécute ce même code directement en ligne de commande dans un script SQL sous DB2 ou sous Oracle, ça marchera toujours aussi bien :-)
J'espère que notre petit échange (bien agréable) aura éclairé la lanterne des amateurs de BDD :-)
J'ai réécris ton code en ADO et cela plante à l'enregistrement (bien
sur)
Oui bien sur, et ce n'est pas du à ADO.
En DAO, c'est 100% identique
si on fait l'insertion avec un INSERT statement, il faut
bien sur faire la même manip de doublage des quote.
Voici exactement le même programme que toi, en DAO:
Dim db As Database
Dim rs As Recordset
Dim szTitle As String
Dim SQL As String
Set db = OpenDatabase("c:bd1.mdb")
Set rs = db.OpenRecordset("Table1")
szTitle = "L'ile au trésor, un livre d'aujourd'hui!"
Set rs = db.OpenRecordset("SELECT * FROM TABLE1 WHERE Titre = '" &
szTitle & "'")
MsgBox rs.Fields("Titre")
rs.Close
db.Close
Et bien entendu, du coup, ça fonctionne parfaitement.
On a écrit qq chose de parfaitement générique, qui fonctionne dans
tous les cas, en DAO comme en ADO.
Et si on exécute ce même code directement en ligne de commande
dans un script SQL sous DB2 ou sous Oracle, ça marchera toujours aussi
bien :-)
J'espère que notre petit échange (bien agréable) aura éclairé la lanterne
des amateurs de BDD :-)
J'ai réécris ton code en ADO et cela plante à l'enregistrement (bien sur)
Oui bien sur, et ce n'est pas du à ADO. En DAO, c'est 100% identique si on fait l'insertion avec un INSERT statement, il faut bien sur faire la même manip de doublage des quote.
Voici exactement le même programme que toi, en DAO:
Dim db As Database Dim rs As Recordset Dim szTitle As String Dim SQL As String
Set db = OpenDatabase("c:bd1.mdb") Set rs = db.OpenRecordset("Table1")
szTitle = "L'ile au trésor, un livre d'aujourd'hui!"
Set rs = db.OpenRecordset("SELECT * FROM TABLE1 WHERE Titre = '" & szTitle & "'") MsgBox rs.Fields("Titre")
rs.Close db.Close
Et bien entendu, du coup, ça fonctionne parfaitement.
On a écrit qq chose de parfaitement générique, qui fonctionne dans tous les cas, en DAO comme en ADO. Et si on exécute ce même code directement en ligne de commande dans un script SQL sous DB2 ou sous Oracle, ça marchera toujours aussi bien :-)
J'espère que notre petit échange (bien agréable) aura éclairé la lanterne des amateurs de BDD :-)
Merci Jean Marc, bonne soirée à toi également. C'est toujours un plaisir de te lire.
dany
"Jean-marc" a écrit dans le message de news: 45c10df1$0$28909$
Daniel AUBRY wrote:
Ok Jean Marc, ça marche en DAO.
J'ai réécris ton code en ADO et cela plante à l'enregistrement (bien sur)
Oui bien sur, et ce n'est pas du à ADO. En DAO, c'est 100% identique si on fait l'insertion avec un INSERT statement, il faut bien sur faire la même manip de doublage des quote.
Voici exactement le même programme que toi, en DAO:
Dim db As Database Dim rs As Recordset Dim szTitle As String Dim SQL As String
Set db = OpenDatabase("c:bd1.mdb") Set rs = db.OpenRecordset("Table1")
szTitle = "L'ile au trésor, un livre d'aujourd'hui!"
Set rs = db.OpenRecordset("SELECT * FROM TABLE1 WHERE Titre = '" & szTitle & "'") MsgBox rs.Fields("Titre")
rs.Close db.Close
Et bien entendu, du coup, ça fonctionne parfaitement.
On a écrit qq chose de parfaitement générique, qui fonctionne dans tous les cas, en DAO comme en ADO. Et si on exécute ce même code directement en ligne de commande dans un script SQL sous DB2 ou sous Oracle, ça marchera toujours aussi bien :-)
J'espère que notre petit échange (bien agréable) aura éclairé la lanterne des amateurs de BDD :-)
Merci Jean Marc,
bonne soirée à toi également.
C'est toujours un plaisir de te lire.
dany
"Jean-marc" <NO_SPAM_jean_marc_n2@yahoo.fr.invalid> a écrit dans le message
de news: 45c10df1$0$28909$ba620e4c@news.skynet.be...
Daniel AUBRY wrote:
Ok Jean Marc, ça marche en DAO.
J'ai réécris ton code en ADO et cela plante à l'enregistrement (bien
sur)
Oui bien sur, et ce n'est pas du à ADO.
En DAO, c'est 100% identique
si on fait l'insertion avec un INSERT statement, il faut
bien sur faire la même manip de doublage des quote.
Voici exactement le même programme que toi, en DAO:
Dim db As Database
Dim rs As Recordset
Dim szTitle As String
Dim SQL As String
Set db = OpenDatabase("c:bd1.mdb")
Set rs = db.OpenRecordset("Table1")
szTitle = "L'ile au trésor, un livre d'aujourd'hui!"
Set rs = db.OpenRecordset("SELECT * FROM TABLE1 WHERE Titre = '" &
szTitle & "'")
MsgBox rs.Fields("Titre")
rs.Close
db.Close
Et bien entendu, du coup, ça fonctionne parfaitement.
On a écrit qq chose de parfaitement générique, qui fonctionne dans
tous les cas, en DAO comme en ADO.
Et si on exécute ce même code directement en ligne de commande
dans un script SQL sous DB2 ou sous Oracle, ça marchera toujours aussi
bien :-)
J'espère que notre petit échange (bien agréable) aura éclairé la lanterne
des amateurs de BDD :-)
Merci Jean Marc, bonne soirée à toi également. C'est toujours un plaisir de te lire.
dany
"Jean-marc" a écrit dans le message de news: 45c10df1$0$28909$
Daniel AUBRY wrote:
Ok Jean Marc, ça marche en DAO.
J'ai réécris ton code en ADO et cela plante à l'enregistrement (bien sur)
Oui bien sur, et ce n'est pas du à ADO. En DAO, c'est 100% identique si on fait l'insertion avec un INSERT statement, il faut bien sur faire la même manip de doublage des quote.
Voici exactement le même programme que toi, en DAO:
Dim db As Database Dim rs As Recordset Dim szTitle As String Dim SQL As String
Set db = OpenDatabase("c:bd1.mdb") Set rs = db.OpenRecordset("Table1")
szTitle = "L'ile au trésor, un livre d'aujourd'hui!"
Set rs = db.OpenRecordset("SELECT * FROM TABLE1 WHERE Titre = '" & szTitle & "'") MsgBox rs.Fields("Titre")
rs.Close db.Close
Et bien entendu, du coup, ça fonctionne parfaitement.
On a écrit qq chose de parfaitement générique, qui fonctionne dans tous les cas, en DAO comme en ADO. Et si on exécute ce même code directement en ligne de commande dans un script SQL sous DB2 ou sous Oracle, ça marchera toujours aussi bien :-)
J'espère que notre petit échange (bien agréable) aura éclairé la lanterne des amateurs de BDD :-)