La méthode FIND de l'objet ADO est elle une bonne solution pour effectuer la
recherche d'un enregistrement dans une base vaut il mieux utiliser une
requete SQL ? en terme de fiabilité et de rapidité sur une base de 50000
entrées.
mon exemple de code :
Dim REFsearch As String
REFsearch = "NUM = '" & IDplayer & "'"
rsADOPLAYER.Find REFsearch, , , 1
...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal B.
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Exemple:
Dim RS As Recordset Set RS = DB.Openrecordset( .... ) RS.Index = "PrimaryKey" '(Indexé sur le champ NUM, par exemple) RS.Seek "=", IDPlayer If RS.NoMatch then MsgBox "Enregistrement pas trouvé" Else MsgBox "Enregistrement trouvé" End If RS.Close
"jc2nantes" a écrit dans le message de news:%23aoq%23% | Salut... | | La méthode FIND de l'objet ADO est elle une bonne solution pour effectuer la | recherche d'un enregistrement dans une base vaut il mieux utiliser une | requete SQL ? en terme de fiabilité et de rapidité sur une base de 50000 | entrées. | | mon exemple de code : | | Dim REFsearch As String | REFsearch = "NUM = '" & IDplayer & "'" | rsADOPLAYER.Find REFsearch, , , 1 | ... | | si vous avez mieux... | | Merci | |
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK
mais ton Recordset doit être alors indexé.
Le résultat est pratiquement immédiat.
Exemple:
Dim RS As Recordset
Set RS = DB.Openrecordset( .... )
RS.Index = "PrimaryKey" '(Indexé sur le champ NUM, par exemple)
RS.Seek "=", IDPlayer
If RS.NoMatch then
MsgBox "Enregistrement pas trouvé"
Else
MsgBox "Enregistrement trouvé"
End If
RS.Close
"jc2nantes" <NOSPAMjc2nantes@hotmail.com> a écrit dans le message de news:%23aoq%23%23i8DHA.2640@TK2MSFTNGP10.phx.gbl...
| Salut...
|
| La méthode FIND de l'objet ADO est elle une bonne solution pour effectuer la
| recherche d'un enregistrement dans une base vaut il mieux utiliser une
| requete SQL ? en terme de fiabilité et de rapidité sur une base de 50000
| entrées.
|
| mon exemple de code :
|
| Dim REFsearch As String
| REFsearch = "NUM = '" & IDplayer & "'"
| rsADOPLAYER.Find REFsearch, , , 1
| ...
|
| si vous avez mieux...
|
| Merci
|
|
Personellement, j'utilise DAO au lieu de ADO; mais ça doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Exemple:
Dim RS As Recordset Set RS = DB.Openrecordset( .... ) RS.Index = "PrimaryKey" '(Indexé sur le champ NUM, par exemple) RS.Seek "=", IDPlayer If RS.NoMatch then MsgBox "Enregistrement pas trouvé" Else MsgBox "Enregistrement trouvé" End If RS.Close
"jc2nantes" a écrit dans le message de news:%23aoq%23% | Salut... | | La méthode FIND de l'objet ADO est elle une bonne solution pour effectuer la | recherche d'un enregistrement dans une base vaut il mieux utiliser une | requete SQL ? en terme de fiabilité et de rapidité sur une base de 50000 | entrées. | | mon exemple de code : | | Dim REFsearch As String | REFsearch = "NUM = '" & IDplayer & "'" | rsADOPLAYER.Find REFsearch, , , 1 | ... | | si vous avez mieux... | | Merci | |
jc2nantes
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message de news:
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble pas gèrer NOMATCH... ce qui serait bien pratique!
a++
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message
de news:OUEc0Jj8DHA.2924@tk2msftngp13.phx.gbl...
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK
mais ton Recordset doit être alors indexé.
Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble pas gèrer
NOMATCH... ce qui serait bien pratique!
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message de news:
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble pas gèrer NOMATCH... ce qui serait bien pratique!
a++
Eric
Bonjour,
Je ne peux pas te garantir pour ADO mais en DAO la propriété NoMatch fonctionne très bien.
La proc serait du genre: Sub test1() Dim sql As String, rs As Recordset, critere As String sql = "select * from tcassette;" Set rs = bd.openrecordset(sql)
'définition du critère critere = "[Genre]='Policier'"
rs.FindFirst critere While Not rs.NoMatch Debug.Print rs!Titre_Film, rs!tarif rs.FindNext critere Wend
End Sub
A+ Eric
-----Message d'origine-----
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a
écrit dans le message
de news:
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça
doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la
méthode SEEK
mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble
pas gèrer
NOMATCH... ce qui serait bien pratique!
a++
.
Bonjour,
Je ne peux pas te garantir pour ADO mais en DAO la
propriété NoMatch fonctionne très bien.
La proc serait du genre:
Sub test1()
Dim sql As String, rs As Recordset, critere As String
sql = "select * from tcassette;"
Set rs = bd.openrecordset(sql)
'définition du critère
critere = "[Genre]='Policier'"
rs.FindFirst critere
While Not rs.NoMatch
Debug.Print rs!Titre_Film, rs!tarif
rs.FindNext critere
Wend
End Sub
A+
Eric
-----Message d'origine-----
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a
écrit dans le message
de news:OUEc0Jj8DHA.2924@tk2msftngp13.phx.gbl...
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça
doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la
méthode SEEK
mais ton Recordset doit être alors indexé.
Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble
Je ne peux pas te garantir pour ADO mais en DAO la propriété NoMatch fonctionne très bien.
La proc serait du genre: Sub test1() Dim sql As String, rs As Recordset, critere As String sql = "select * from tcassette;" Set rs = bd.openrecordset(sql)
'définition du critère critere = "[Genre]='Policier'"
rs.FindFirst critere While Not rs.NoMatch Debug.Print rs!Titre_Film, rs!tarif rs.FindNext critere Wend
End Sub
A+ Eric
-----Message d'origine-----
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a
écrit dans le message
de news:
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça
doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la
méthode SEEK
mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble
pas gèrer
NOMATCH... ce qui serait bien pratique!
a++
.
Eric
re,
le message précédent est hors du contexte. Sorry
Eric
-----Message d'origine-----
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a
écrit dans le message
de news:
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça
doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la
méthode SEEK
mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble
pas gèrer
NOMATCH... ce qui serait bien pratique!
a++
.
re,
le message précédent est hors du contexte. Sorry
Eric
-----Message d'origine-----
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a
écrit dans le message
de news:OUEc0Jj8DHA.2924@tk2msftngp13.phx.gbl...
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça
doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la
méthode SEEK
mais ton Recordset doit être alors indexé.
Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a
écrit dans le message
de news:
Bonjour JC
Personellement, j'utilise DAO au lieu de ADO; mais ça
doit être pareil...
Pour trouver un enregistrement rapidement, j'utilise la
méthode SEEK
mais ton Recordset doit être alors indexé. Le résultat est pratiquement immédiat.
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble
pas gèrer
NOMATCH... ce qui serait bien pratique!
a++
.
Christophe
Bonjour,
Pour DAO il me semble que la methode seek est reservée au objet Table. et ci dessous un extrait de la msdn
"" En général, pour des types de recherche équivalents, la méthode Seek offre de meilleurs résultats que les méthodes Find. Cette méthode implique toutefois que les objets Recordset de type Table suffisent à satisfaire vos besoins. "" Christophe Vergon
et effectivement c'est quasi instantané sur un primarykey en index. "jc2nantes" a écrit dans le message de news:
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message de news: > Bonjour JC > > Personellement, j'utilise DAO au lieu de ADO; mais ça doit être
pareil...
> > Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK > mais ton Recordset doit être alors indexé. > Le résultat est pratiquement immédiat. >
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble pas gèrer NOMATCH... ce qui serait bien pratique!
a++
Bonjour,
Pour DAO il me semble que la methode seek est reservée au objet Table.
et ci dessous un extrait de la msdn
""
En général, pour des types de recherche équivalents, la méthode Seek offre
de meilleurs résultats que les méthodes Find. Cette méthode implique
toutefois que les objets Recordset de type Table suffisent à satisfaire vos
besoins.
""
Christophe Vergon
et effectivement c'est quasi instantané sur un primarykey en index.
"jc2nantes" <NOSPAMjc2nantes@hotmail.com> a écrit dans le message de news:
uS6hoyj8DHA.2308@TK2MSFTNGP11.phx.gbl...
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message
de news:OUEc0Jj8DHA.2924@tk2msftngp13.phx.gbl...
> Bonjour JC
>
> Personellement, j'utilise DAO au lieu de ADO; mais ça doit être
pareil...
>
> Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK
> mais ton Recordset doit être alors indexé.
> Le résultat est pratiquement immédiat.
>
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble pas gèrer
NOMATCH... ce qui serait bien pratique!
Pour DAO il me semble que la methode seek est reservée au objet Table. et ci dessous un extrait de la msdn
"" En général, pour des types de recherche équivalents, la méthode Seek offre de meilleurs résultats que les méthodes Find. Cette méthode implique toutefois que les objets Recordset de type Table suffisent à satisfaire vos besoins. "" Christophe Vergon
et effectivement c'est quasi instantané sur un primarykey en index. "jc2nantes" a écrit dans le message de news:
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message de news: > Bonjour JC > > Personellement, j'utilise DAO au lieu de ADO; mais ça doit être
pareil...
> > Pour trouver un enregistrement rapidement, j'utilise la méthode SEEK > mais ton Recordset doit être alors indexé. > Le résultat est pratiquement immédiat. >
Pascal,
SEEK semble en effet similaire à FIND mais FIND ne semble pas gèrer NOMATCH... ce qui serait bien pratique!