Ms access 如何在VBA中创建词典集合?
我正试图用VBA建立一个字典集。构建集合后,它将转换为JSON,并以HTTP请求的形式发送到web服务 因为字典是对象,所以它们是通过引用而不是通过值添加到集合中的。结果是,我的收藏由相同的词典组成,而不是我想要的单个词典Ms access 如何在VBA中创建词典集合?,ms-access,dictionary,vba,Ms Access,Dictionary,Vba,我正试图用VBA建立一个字典集。构建集合后,它将转换为JSON,并以HTTP请求的形式发送到web服务 因为字典是对象,所以它们是通过引用而不是通过值添加到集合中的。结果是,我的收藏由相同的词典组成,而不是我想要的单个词典 Dim qdf As DAO.QueryDef Dim rs As DAO.Recordset Set qdf = CurrentDb.QueryDefs("qryTutors") Set rs = qdf.OpenRecordset Dim tutors As New
Dim qdf As DAO.QueryDef
Dim rs As DAO.Recordset
Set qdf = CurrentDb.QueryDefs("qryTutors")
Set rs = qdf.OpenRecordset
Dim tutors As New Collection
If Not (rs.EOF And rs.BOF) Then
Do Until rs.EOF = True
Dim tutor As New Scripting.Dictionary
tutor.Add "TutorName", rs!TutorFirstName.Value & " " & rs!TutorSurname.Value
tutor.Add "TutorEmail", rs!TutorEmail.Value
tutor.Add "TutorSubject", rs!TutorSubject.Value
tutors.Add tutor
tutor.RemoveAll
rs.MoveNext
Loop
End If
txtOutput.Value = JsonConverter.ConvertToJson(tutors)
rs.Close 'Close the recordset
Set rs = Nothing 'Clean up
感谢您的帮助。在每次迭代中使用新词典:
Dim qdf As DAO.QueryDef
Dim rs As DAO.Recordset
Set qdf = CurrentDb.QueryDefs("qryTutors")
Set rs = qdf.OpenRecordset
Dim tutors As New Collection
Dim tutor As Scripting.Dictionary
If Not (rs.EOF And rs.BOF) Then
Do Until rs.EOF = True
Set tutor = New Scripting.Dictionary
tutor.Add "TutorName", rs!TutorFirstName.Value & " " & rs!TutorSurname.Value
tutor.Add "TutorEmail", rs!TutorEmail.Value
tutor.Add "TutorSubject", rs!TutorSubject.Value
tutors.Add tutor
rs.MoveNext
Loop
End If
txtOutput.Value = JsonConverter.ConvertToJson(tutors)
rs.Close 'Close the recordset
Set rs = Nothing 'Clean up