如何迭代返回类型为field2
的字段的记录集? 是否有方法可以确定field2
类型中有多少个对象?针对Combobox字段返回的VBA访问对象类型
让我描述我的表的相关方面:
表fields
具有field NMR
其中包含可能的选项,用户可以在另一个表中选择一个列表。在Experiments
表中,字段NMR是一个组合框,用于填充另一个表中的选项。
我这样做是在Experiments
表的设计,我已经设置了场这样的方式:
现在,在我的形式之一,我需要阅读值在Experiments!NMR
这可以是多选允许组合框。记录集rs!NMR的类型为Field2
。
要获得值,您使用整数进行迭代(即rs!NMR(0)
将返回第一个选定选项)。问题是我不知道如何获得字段数并调用!NMR(i)
,其中我大于元素的数量将调用Run time error '3265', Object doesn't exist in this collection
。
它们存在size
方法只返回字段宽度大小(4?),并且文档状态表明这是field2
对象内数据类型的大小。
似乎没有与field2
关联的count
方法,因为使用!NMR.Count
调用runtime error 438, Object doesn't support this method
。
代码:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qry As String
qry = "SELECT * FROM Experiments"
Set db = CurrentDb
Set rs = db.OpenRecordset(qry, dbOpenSnapshot)
With rs
Do While Not .EOF
Dim i As Integer
For i = 0 to !NMR.Count ' or SOMETHING - this is the problem
' this is irrelevant, I need to know how to iterate the list
Next i
.MoveNext
Loop
End With
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
我也试过逻辑控制等
Do While(!NMR(i) <> vbNullString)
因为各个部件都是字符串,但没有运气。这发出相同的3265: Item isn't found
错误。这个检查循环相同Do While Not IsNull(!NMR(i))
有没有方法可以告诉Field中有多少个物体!NMR?
http://sourcedaddy.com/ms-access/navigating-recordsets-with-multi-value-lookup-fields.html这将告诉你如何做到这一点。实际上很容易找到。 –
过度反应?你的高清读数太多了lol –
@DougCoats Myb然后。我搜索了一段时间 - 我以为你说我没有试图自己找到它。 – Chemistpp