OVH Cloud OVH Cloud

access et ado

1 réponse
Avatar
keops
bonjour
1 Quel interet de quittrer DAO pour Ado ?
2 d'autres part j'ouvre une basede donnée en utilisant Adodb

ex:
Private Sub Texte10_AfterUpdate()
Dim nm As String
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
cnn.Open "provider = microsoft.jet.oledb.4.0; data source =
\\xxxxxxx\commun\starec\starec_princip.mdb;"
cnn.Properties("jet oledb:page timeout") = 4000
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
nm = "%" & Me.Texte10 & "%"
rst.Open "Select * from cli2005 where cli2005.nom like '" & nm & "' ", cnn,
adOpenStatic, adLockReadOnly, adCmdText
'rst.Open sql, cnn, adOpenKeyset, adLockReadOnly, adCmdText
Set Me.Recordset = rst
rst.Close
Set rst = Nothing
cnn.Close
End Sub

Pourquoi lors de la premiere recherche cela prend t il autant de temps plus
de 15 secondes evidement les prochaines sont presqu'instantané?
je voudrais savoir comment la table est elle requeté par le moteur Jet ou
Autres ? Pour comprendre ma question regarder la variable NM. Avec le moteur
jet ca devrait marcher comme cela NM="*" & me.texte10 &"*"
Merci de vos lumieres

1 réponse

Avatar
3stone
Salut,

"keops"
| 1 Quel interet de quittrer DAO pour Ado ?


En local ou avec des tables liées : aucun !
Autrement dit : tant que tu utilise le moteur JET, reste en DAO.


| 2 d'autres part j'ouvre une basede donnée en utilisant Adodb
|
| ex:
| Private Sub Texte10_AfterUpdate()
| Dim nm As String
| Dim cnn As New ADODB.Connection
| Dim rst As New ADODB.Recordset
| cnn.Open "provider = microsoft.jet.oledb.4.0; data source | xxxxxxxcommunstarecstarec_princip.mdb;"
| cnn.Properties("jet oledb:page timeout") = 4000
| Set rst = New ADODB.Recordset
| rst.CursorLocation = adUseClient
| nm = "%" & Me.Texte10 & "%"
| rst.Open "Select * from cli2005 where cli2005.nom like '" & nm & "' ", cnn,
| adOpenStatic, adLockReadOnly, adCmdText
| 'rst.Open sql, cnn, adOpenKeyset, adLockReadOnly, adCmdText
| Set Me.Recordset = rst
| rst.Close
| Set rst = Nothing
| cnn.Close
| End Sub
|
| Pourquoi lors de la premiere recherche cela prend t il autant de temps plus
| de 15 secondes evidement les prochaines sont presqu'instantané?
| je voudrais savoir comment la table est elle requeté par le moteur Jet ou
| Autres ? Pour comprendre ma question regarder la variable NM. Avec le moteur
| jet ca devrait marcher comme cela NM="*" & me.texte10 &"*"


Tout cela est "anti-performant" !

Select * ramène tous les champs - il faut le plus souvent mieux de les énumérer...

Like * machin * est une catastrophe en performance.

Regarde sur le site de crosoft, il y à de la bonne doc...
http://www.microsoft.com/france/msdn/donnees/articles/migration_DAO_ADO.mspx
et un pdf, près à imprimer :
http://laurent.tedesco.com/pdf/STK_ADO.pdf


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/