Dans une forme MS-Access, j'ai le code suivant attaché à un événement:MS Access: .Close obligatoire après .RecordSetClone?
Dim frm As Form, rs As Recordset
Set rs = Me.RecordsetClone
'do some stuff with rs
'
rs.Close
Set rs = Nothing
Set frm = Nothing
Ma question est: est le rs.Close nécessaire? Est-il même bon (effets secondaires non désirés?)
Vous devez définir votre variable de jeu d'enregistrements comme 'rs As DAO.Recordset'. Autrement dit, si vous allez le déclarer du tout. Il n'y a presque jamais de cas où cela soit nécessaire lorsqu'on travaille avec RecordsetClone. Au lieu de cela, utilisez un bloc WITH/END WITH, c'est-à-dire "With Me.RecordsetClone". –
@David: le With est une bonne idée. Je ne spécifie jamais la partie DAO car je ne référence jamais ADO, mais vous avez probablement raison et un jour je vais payer pour cela: -/ –
En le spécifiant, vous faites que le processus de compilation nécessite moins de résolution des objets implicites dans le espace de nommage. Bien que je n'ai jamais vu VBA se tromper avec seulement une référence DAO, je préfère dire à VBA ce qu'il faut regarder pour ne pas avoir à "s'inquiéter" à ce sujet. C'est aussi un meilleur codage - gardez à l'esprit que l'un des buts du code est d'informer un programmeur de ce qui se passe (pas seulement le compilateur), et spécifier DAO dans tous les cas le rend clair dans tous les cas. –