Bonjour,
je dispose d'une base access (jet pour être exact)
et je souhaite améliorer les temps d'access. (2,2 million d'enregistrement)
mon problème est de trouver les meilleurs réglages.
voici mon code .
en ouverture 4.30 sec avec adUseServer (convenable)
en ouverture plus de 30 sec avec adUseClient (pas bon du tout !)
Private Sub Requete_complete()
On Error GoTo fin
Screen.MousePointer = 11 'sablier
deb = Timer
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseServer
.ActiveConnection = CN
.Properties("IrowSetIdentity") = True
.Source = Requete_Articles_Complete
.Open , , adOpenStatic, adLockOptimistic, adCmdText
End With
Set DataGrid1.DataSource = rs
Label30 = Timer - deb
Screen.MousePointer = 0
Exit Sub
fin:
Trape_Erreur Me.name, "Requete_complete"
End Sub
lorsque je recherche dans un champs lors de chaque frappe
le compteur s'affole et je dépasse les 30 sec
j'ai testé avec le curseur AdOpenForwardOnly, mais il ne marche pas avec access
Private Sub txtrech_Change()
If Len(txtrech) > 2 Then 'on entre en recherche au 3eme caratère,
deb = timer
Requete_Articles = Requete_Articles_De_base & _
" where désignation LIKE ""%" & txtRech & "%"" "
Screen.MousePointer = 11 'sablier
Set rs = New ADODB.Recordset
With rs
.CursorLocation = adUseServer
.ActiveConnection = CN
.Properties("IrowSetIdentity") = True
.Source = Requete_Articles
.Open , , adOpenStatic, adLockOptimistic, adCmdText
End With
Set DataGrid1.DataSource = rs
Set Adodc1.Recordset = rs
Label30 = Timer - deb
End if
End Sub
y'a t-il un moyen de naviguer dans le recordset
sans le rédefinir à chaque requete ? (Set rs = New ADODB.Recordset)
merci de votre aide