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
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
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
"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
"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