Bon, 2 points...
1) Ne jamais faire à la main les '...
En effet, je jour où il y a une appostrophe, ben proutch !
Créer une fonction quote...
function Quote(str)
if cstr(str) <> "" then
Quote = "'" & replace(str, "'", "''" ) & "'"
else
Quote = "''"
end if
end function
2) Le find est à banir...
Seuls rs.open et cnx.execute doivent être utilisés.
Pkoi ? Tout simplement pour deux raisons principales...
a- Votre code sera peut-être un jour repris dans un langage qui ne supporte pas les options avancées des reccordsets de VB.
b- Selon la version des drivers ODBC, du SGDB et de la requête, les résultats peuvent être différents...
Même le reccordcount est à banir...
Je ne retrouve plus l'article, mais grosso-modo, les drivers ADO ODBC 2.0 pour SQL Server et Oracle sont buggés, et lors d'une jointure, une grande partie des propriétés des recordsets partent en live (notamment recordcount = -1)
Note: Pour voir si un RS est vide ou non, à tout moment, vous pouvez faire :
if rs.EOF and rs.BOF then
' le recordset est vide
else
' le recordset contient au moins un élément
end if
--Message édité par MagicBuzz--