Bonjour je m'attaque aujourd'hui à de l'optimisation de mon application.
Bien qu'ayant lu la FAQ access concernant cette tâche, une question continue de me tarauder l'esprit:

Optimise ton plus les traitements en passant par du sql directe (update [table] set ...) ou bien en passant par les objets DAO.RECORDSET

exemple de code ci-dessus, lequel des traitements serait le lus optimisé et le plus rapide :
bloc 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Dim myRs As DAO.Recordset
     'Begin the transaction
     myWrk.BeginTrans
 
     'start an update throught the recordset
     Set myRs = myDb.OpenRecordset("Category")
     myRs.Filter = "category_id = " & Me.Id
     With myRs
         .Edit
         .Fields("Label") = Me.Label
         .Fields("Description") = Me.Description
         .Fields("TicketFlag") = Me.TicketFlag
         .Fields("UpdatedBy") = Me.UpdatedBy
         .Fields("UpdateDate") = Me.UpdateDate
         .Update
     End With
 
     'commit the transaction
     myWrk.CommitTrans dbForceOSFlush
 
     set myRs = nothing
vs


bloc 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
Dim reqSQL As String
 
     reqSQL = "update [category] set [label] = '" & param label & '" where category_id = 1
     'Begin the transaction
     myWrk.BeginTrans
 
     Docmd.runSQL(reqSQL)
      'commit the transaction
     myWrk.CommitTrans dbForceOSFlush
 
     set myRs = nothing
Je precise que pour un insert, il est dit que passer par un recordset prend le traitement plus rapide :

L'utilisation d'un Recordset rend le traitement plus rapide.
Il est possible que la différence soit due au fait que le Recordset travaille avec la mémoire avant d'écrire sur le disque, alors que n requêtes provoquent n accès disque.
http://access.developpez.com/faq/?page=SQL#PerfReq