У меня есть форма с комбинированным ящиком, в котором я заполняю записи из db доступа (я использую связанные таблицы). То, что я хотел бы сделать, - хранить записи в экземпляре класса на протяжении всего жизненного цикла программы, а не запрашивать таблицу каждый раз, когда пользователь выбирает поле со списком. Сейчас я вызываю funtion из частного sub, функция возвращает данные набора записей DAO, которые я хочу, но у меня есть вопрос, как передать данные из набора записей функций в общедоступный DAO.Recordset, предполагая, что если бы это было возможно, оно хранило данные набора записей на протяжении всего жизненного цикла программы. Когда я запускаю код, и он заканчивает Public Rs() в окне вывода Watch, говорит: Recordset (от 0 до -1) и No Variables, я не уверен, как исправить это.Сохранять записи в экземпляре класса, чтобы сделать доступным в любом месте проекта на протяжении всего жизненного цикла программы
Вот мой код:
Private Sub cmdGetRecordset_Click()
Dim strDescription As String
Dim strModel As String
Dim rst As DAO.Recordset
Set rst = getdevices()
Do While Not rst.EOF
strDescripton = rst!DESC
strModel = rst!MODEL
Debug.Print strDescription & " " & strModel
rst.MoveNext
Loop
'rst.Close'
'Set rst = Nothing'
End Sub
'' '' ''
Option Compare Database
Public Rs() As DAO.Recordset
Function getdevices() As DAO.Recordset
Dim Rs As Object
Dim CurDatabase As Object
connectDatabase
Set CurDatabase = CurrentDb
Set Rs = CurDatabase.OpenRecordset("SELECT * FROM tblCDA")
Set getdevices = Rs
closeDatabase
End Function
Что я хотел бы сделать, это хранить исходные данные в памяти с помощью массивов и перебирать их. Какой был бы лучший способ сделать это? Не могли бы вы привести примеры кода? – rgraham