В форме MS-Access, я следующий код прилагается к событию:Доступ к MS: .Закрыть после .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
Мой вопрос: требуется rs.Close? Это даже хорошо (нежелательные побочные эффекты?)
Вы должны определить свою переменную набора записей как 'rs As DAO.Recordset'. То есть, если вы собираетесь объявить это вообще. Практически никогда не бывает случая, когда это необходимо при работе с RecordsetClone. Вместо этого используйте блок WITH/END WITH, т. Е. 'With Me.RecordsetClone'. –
@ Давид: С есть хорошая идея. Я никогда не указываю часть DAO, потому что я никогда не ссылаюсь на ADO, но вы, вероятно, правы, и в один прекрасный день я заплачу за это: -/ –
Указав это, вы делаете процесс компиляции, требуя меньше разрешения неявных объектов в пределах Пространство имен. Хотя я никогда не видел, чтобы VBA ошибался только с ссылкой DAO, я бы лучше сказал VBA, на что смотреть, поэтому не нужно «беспокоиться» об этом. Это также просто лучшее кодирование - имейте в виду, что одна из целей кода - информировать программиста о том, что происходит (а не только компилятор), и указание DAO во всех случаях ясно дает понять во всех случаях. –