Вот решение, основанное на этом примере: Создание наборов записей ADO в памяти
- не забудьте сначала добавить ссылку в Инструменты> Ссылки, найти последний объект данных Microsoft ActiveX
Public Sub createDataSet(mekeNewSet As Boolean)
'requires reference addedd **Microsoft ActiveX Data Object**
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Set rs = New ADODB.Recordset
With rs
.Fields.Append "EmployeeID", adInteger, , adFldKeyColumn
.Fields.Append "FirstName", adVarChar, 10, adFldMayBeNull
.Fields.Append "LastName", adVarChar, 20, adFldMayBeNull
.Fields.Append "Email", adVarChar, 64, adFldMayBeNull
.Fields.Append "Include", adInteger, , adFldMayBeNull
.Fields.Append "Selected", adBoolean, , adFldMayBeNull
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.Open
End With
With rs
.AddNew
.Fields(0) = 777
.Fields(1) = "John"
.Fields(2) = "Smith"
.Fields(3) = "john.smith@something.com"
.Fields(4) = 1
.Fields(5) = True
.Update
End With
Set Me.Recordset = rs
End Sub
Существует также возможность создать новый класс в VBA и затем создать коллекцию, как показано в этом руководстве: Использование пользовательских коллекций в Microsoft Access
Полное решение о том, как загрузить XML-данные и ввести их в рекордере, можно посмотреть здесь:
Доступ к VBA - как загрузить файл XML и ввести его данные в набор записей