Salut à toutes et tous,
existe-il une fonction style Dlookup avec laquelle je peux faire une
recherche sur un index ou PrimaryKey
du style :
Dlookup(MonChamp,MaTable,"PrimaryKey =" & MaValeur)
Merci d'avance ???
Martial
Salut à toutes et tous,
existe-il une fonction style Dlookup avec laquelle je peux faire une
recherche sur un index ou PrimaryKey
du style :
Dlookup(MonChamp,MaTable,"PrimaryKey =" & MaValeur)
Merci d'avance ???
Martial
Salut à toutes et tous,
existe-il une fonction style Dlookup avec laquelle je peux faire une
recherche sur un index ou PrimaryKey
du style :
Dlookup(MonChamp,MaTable,"PrimaryKey =" & MaValeur)
Merci d'avance ???
Martial
Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)
faite sous access 2.0 et transformée en access2000, j'essaie d'optimiser
un
peu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)
faite sous access 2.0 et transformée en access2000, j'essaie d'optimiser
un
peu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)
faite sous access 2.0 et transformée en access2000, j'essaie d'optimiser
un
peu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Le dlookup peut se faire sur n'importe quel champ, mais ne ramène qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" a écrit dans le message de
news:Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)faite sous access 2.0 et transformée en access2000, j'essaie d'optimiser
unpeu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Le dlookup peut se faire sur n'importe quel champ, mais ne ramène qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" <nospam-mlr@dimo-gestion.fr> a écrit dans le message de
news:unxY8WXjDHA.1948@TK2MSFTNGP12.phx.gbl...
Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)
faite sous access 2.0 et transformée en access2000, j'essaie d'optimiser
un
peu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Le dlookup peut se faire sur n'importe quel champ, mais ne ramène qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" a écrit dans le message de
news:Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)faite sous access 2.0 et transformée en access2000, j'essaie d'optimiser
unpeu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Humm...
Tu es sur raymond?
Pourtant Seek utilise explicitemet l'index alors que findfirst est un peu
plus brouillon, il est possible d'y mettre un peu n'importe quoi.
Faudrait que je fasse un benchmark un de ces 4...
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Raymond" a écrit dans le message de
news:Le dlookup peut se faire sur n'importe quel champ, mais ne ramène qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst
est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" a écrit dans le message de
news:Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)faite sous access 2.0 et transformée en access2000, j'essaie
d'optimiser
unpeu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un
genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autrechose !!!!
Merci tout de même pour ta réponse
Martial
Humm...
Tu es sur raymond?
Pourtant Seek utilise explicitemet l'index alors que findfirst est un peu
plus brouillon, il est possible d'y mettre un peu n'importe quoi.
Faudrait que je fasse un benchmark un de ces 4...
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme jerome.crevecoeur@acsinfo.fr
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Raymond" <XYZ.access.seneque@free.fr> a écrit dans le message de
news:eefPNdXjDHA.3700@TK2MSFTNGP11.phx.gbl...
Le dlookup peut se faire sur n'importe quel champ, mais ne ramène qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst
est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" <nospam-mlr@dimo-gestion.fr> a écrit dans le message de
news:unxY8WXjDHA.1948@TK2MSFTNGP12.phx.gbl...
Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)
faite sous access 2.0 et transformée en access2000, j'essaie
d'optimiser
un
peu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un
genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Humm...
Tu es sur raymond?
Pourtant Seek utilise explicitemet l'index alors que findfirst est un peu
plus brouillon, il est possible d'y mettre un peu n'importe quoi.
Faudrait que je fasse un benchmark un de ces 4...
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Raymond" a écrit dans le message de
news:Le dlookup peut se faire sur n'importe quel champ, mais ne ramène qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst
est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" a écrit dans le message de
news:Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)faite sous access 2.0 et transformée en access2000, j'essaie
d'optimiser
unpeu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un
genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autrechose !!!!
Merci tout de même pour ta réponse
Martial
Bon ça me titillait trop.
J'ai donc réalisé un benchmark dont je vous fournis les résultats + le
code
(pour vérifier la méthode).
Benchmark réalisé aprés reboot de la machine pour ne pas éviter les
erreurs
de cache etc...
Je pense que les résultats seraient encore plus flagrant avec une clé de
type text
--------Recherche sous access------------
---Methode Seek---
Trouveu6
Non TrouveD
186 millisecondes
---fin methode Seek---
---Methode FindFirst---
Trouveu6
Non TrouveD
1565 millisecondes
---fin methode Findfirst---
---Methode Dlookup---
Trouveu6
Non TrouveD
47509 millisecondes
---fin methode Dlookup---
---------Module---------
Option Compare Database
Option Explicit
Declare Function GetTickCount Lib "kernel32" () As Long
Sub BenchmarkSearch()
Dim mabd As Database
Dim rs As Recordset
Dim ret As Long
Dim nbtrouve As Long
Dim nbnontrouve As Long
Dim i As Long
'Ouverture de la base
Set mabd = OpenDatabase("C:EcolesTablesXP.mdb")
Set rs = mabd.OpenRecordset("Eleves", dbOpenTable)
'Parcours des lignes
ret = GetTickCount
rs.Index = "PrimaryKey"
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
rs.Seek "=", i
If rs.NoMatch Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
rs.Close
Set rs = Nothing
mabd.Close
Set mabd = Nothing
Debug.Print "---Methode Seek---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Seek---"
'Ouverture de la base
Set mabd = OpenDatabase("C:EcolesTablesXP.mdb")
Set rs = mabd.OpenRecordset("Eleves", dbOpenSnapshot)
'Parcours des lignes
ret = GetTickCount
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
rs.FindFirst "ele_code=" & i
If rs.NoMatch Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
rs.Close
Set rs = Nothing
mabd.Close
Set mabd = Nothing
Debug.Print
Debug.Print "---Methode FindFirst---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Findfirst---"
Debug.Print
ret = GetTickCount
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
If DCount("ele_code", "ELEVES", "ele_code=" & i) = 0 Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
Debug.Print
Debug.Print "---Methode Dlookup---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Dlookup---"
End Sub
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Crevecoeur Jérôme" a écrit dans le message
de
news:%Humm...
Tu es sur raymond?
Pourtant Seek utilise explicitemet l'index alors que findfirst est un
peu
plus brouillon, il est possible d'y mettre un peu n'importe quoi.
Faudrait que je fasse un benchmark un de ces 4...
--
--------------------------------------------------------------------------
----------------------
Crévecoeur Jérôme
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
-----------------------
"Raymond" a écrit dans le message de
news:Le dlookup peut se faire sur n'importe quel champ, mais ne ramène
qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst
estplus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" a écrit dans le message de
news:Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)faite sous access 2.0 et transformée en access2000, j'essaie
d'optimiserunpeu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un
genreDlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autrechose !!!!
Merci tout de même pour ta réponse
Martial
Bon ça me titillait trop.
J'ai donc réalisé un benchmark dont je vous fournis les résultats + le
code
(pour vérifier la méthode).
Benchmark réalisé aprés reboot de la machine pour ne pas éviter les
erreurs
de cache etc...
Je pense que les résultats seraient encore plus flagrant avec une clé de
type text
--------Recherche sous access------------
---Methode Seek---
Trouveu6
Non TrouveD
186 millisecondes
---fin methode Seek---
---Methode FindFirst---
Trouveu6
Non TrouveD
1565 millisecondes
---fin methode Findfirst---
---Methode Dlookup---
Trouveu6
Non TrouveD
47509 millisecondes
---fin methode Dlookup---
---------Module---------
Option Compare Database
Option Explicit
Declare Function GetTickCount Lib "kernel32" () As Long
Sub BenchmarkSearch()
Dim mabd As Database
Dim rs As Recordset
Dim ret As Long
Dim nbtrouve As Long
Dim nbnontrouve As Long
Dim i As Long
'Ouverture de la base
Set mabd = OpenDatabase("C:EcolesTablesXP.mdb")
Set rs = mabd.OpenRecordset("Eleves", dbOpenTable)
'Parcours des lignes
ret = GetTickCount
rs.Index = "PrimaryKey"
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
rs.Seek "=", i
If rs.NoMatch Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
rs.Close
Set rs = Nothing
mabd.Close
Set mabd = Nothing
Debug.Print "---Methode Seek---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Seek---"
'Ouverture de la base
Set mabd = OpenDatabase("C:EcolesTablesXP.mdb")
Set rs = mabd.OpenRecordset("Eleves", dbOpenSnapshot)
'Parcours des lignes
ret = GetTickCount
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
rs.FindFirst "ele_code=" & i
If rs.NoMatch Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
rs.Close
Set rs = Nothing
mabd.Close
Set mabd = Nothing
Debug.Print
Debug.Print "---Methode FindFirst---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Findfirst---"
Debug.Print
ret = GetTickCount
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
If DCount("ele_code", "ELEVES", "ele_code=" & i) = 0 Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
Debug.Print
Debug.Print "---Methode Dlookup---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Dlookup---"
End Sub
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme jerome.crevecoeur@acsinfo.fr
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Crevecoeur Jérôme" <bbbbc.aaaaa@libertysurf.fr> a écrit dans le message
de
news:%23HYzLsXjDHA.2732@TK2MSFTNGP11.phx.gbl...
Humm...
Tu es sur raymond?
Pourtant Seek utilise explicitemet l'index alors que findfirst est un
peu
plus brouillon, il est possible d'y mettre un peu n'importe quoi.
Faudrait que je fasse un benchmark un de ces 4...
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme jerome.crevecoeur@acsinfo.fr
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Raymond" <XYZ.access.seneque@free.fr> a écrit dans le message de
news:eefPNdXjDHA.3700@TK2MSFTNGP11.phx.gbl...
Le dlookup peut se faire sur n'importe quel champ, mais ne ramène
qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst
est
plus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" <nospam-mlr@dimo-gestion.fr> a écrit dans le message de
news:unxY8WXjDHA.1948@TK2MSFTNGP12.phx.gbl...
Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)
faite sous access 2.0 et transformée en access2000, j'essaie
d'optimiser
un
peu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un
genre
Dlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autre
chose !!!!
Merci tout de même pour ta réponse
Martial
Bon ça me titillait trop.
J'ai donc réalisé un benchmark dont je vous fournis les résultats + le
code
(pour vérifier la méthode).
Benchmark réalisé aprés reboot de la machine pour ne pas éviter les
erreurs
de cache etc...
Je pense que les résultats seraient encore plus flagrant avec une clé de
type text
--------Recherche sous access------------
---Methode Seek---
Trouveu6
Non TrouveD
186 millisecondes
---fin methode Seek---
---Methode FindFirst---
Trouveu6
Non TrouveD
1565 millisecondes
---fin methode Findfirst---
---Methode Dlookup---
Trouveu6
Non TrouveD
47509 millisecondes
---fin methode Dlookup---
---------Module---------
Option Compare Database
Option Explicit
Declare Function GetTickCount Lib "kernel32" () As Long
Sub BenchmarkSearch()
Dim mabd As Database
Dim rs As Recordset
Dim ret As Long
Dim nbtrouve As Long
Dim nbnontrouve As Long
Dim i As Long
'Ouverture de la base
Set mabd = OpenDatabase("C:EcolesTablesXP.mdb")
Set rs = mabd.OpenRecordset("Eleves", dbOpenTable)
'Parcours des lignes
ret = GetTickCount
rs.Index = "PrimaryKey"
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
rs.Seek "=", i
If rs.NoMatch Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
rs.Close
Set rs = Nothing
mabd.Close
Set mabd = Nothing
Debug.Print "---Methode Seek---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Seek---"
'Ouverture de la base
Set mabd = OpenDatabase("C:EcolesTablesXP.mdb")
Set rs = mabd.OpenRecordset("Eleves", dbOpenSnapshot)
'Parcours des lignes
ret = GetTickCount
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
rs.FindFirst "ele_code=" & i
If rs.NoMatch Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
rs.Close
Set rs = Nothing
mabd.Close
Set mabd = Nothing
Debug.Print
Debug.Print "---Methode FindFirst---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Findfirst---"
Debug.Print
ret = GetTickCount
nbtrouve = 0
nbnontrouve = 0
For i = 1 To 800
If DCount("ele_code", "ELEVES", "ele_code=" & i) = 0 Then
nbnontrouve = nbnontrouve + 1
Else
nbtrouve = nbtrouve + 1
End If
Next i
Debug.Print
Debug.Print "---Methode Dlookup---"
Debug.Print "Trouve=" & nbtrouve
Debug.Print "Non Trouve=" & nbnontrouve
Debug.Print (GetTickCount - ret) & " millisecondes"
Debug.Print "---fin methode Dlookup---"
End Sub
--
--------------------------------------------------------------------------
--
--------------------
Crévecoeur Jérôme
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
--
---------------------
"Crevecoeur Jérôme" a écrit dans le message
de
news:%Humm...
Tu es sur raymond?
Pourtant Seek utilise explicitemet l'index alors que findfirst est un
peu
plus brouillon, il est possible d'y mettre un peu n'importe quoi.
Faudrait que je fasse un benchmark un de ces 4...
--
--------------------------------------------------------------------------
----------------------
Crévecoeur Jérôme
ACS INFORMATIQUE
122,rue du Château d'orgemont
49000 ANGERS
Tel: 02 41 68 42 36 Fax: 02 41 68 42 48
--------------------------------------------------------------------------
-----------------------
"Raymond" a écrit dans le message de
news:Le dlookup peut se faire sur n'importe quel champ, mais ne ramène
qu'une
seule valeur, alors que les seek ramènent l'enregistrement. findfirst
estplus rapide que seek ( parait-il)
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.
"martial" a écrit dans le message de
news:Oui merci, mais ça je connaissais.
Le problème c'est que sur une très grosse application (pleine de
fonctions)faite sous access 2.0 et transformée en access2000, j'essaie
d'optimiserunpeu pour gagner en performance.
A l'époque de access2.0, le Dlookup n'existait pas et j'ai un tas de
fonctions qui utilisent les openrecordset et des set
acnbase=currentdb().....
Alors je me suis dis que ce serait rudement bien s'il existait un
genreDlookup sur index.
Mais bon, si ce n'est pas le cas ce n'est pas grave, j'optimiserais
autrechose !!!!
Merci tout de même pour ta réponse
Martial