【发布时间】:2020-05-21 20:27:52
【问题描述】:
我正在尝试使用记录集代码循环遍历表中的所有字段并 debug.print 它们的值和字段名称按照您自然会读取表的顺序,即从左到右跨列然后到下面的行
我已经完成了我想要做的事情,但只是第一行。这是代码:
Sub RecordSets()
Dim db As Database
Dim rs As Recordset
Dim i As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl1")
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Name
Debug.Print rs.Fields(i).Value
Next
rs.Close
db.Close
End Sub
立即窗口产生以下结果:
Category
Clothing
Item
Shirt
Price
5
这是顶行,完全符合我的要求。但是我无法让任何代码为其他行完成完全相同的事情。我 99% 确定我需要将 Do Until .EOF 循环与 For...Next 循环结合使用,但无论我尝试什么都无法获得结果,或者我在无限查询中锁定了访问权限。
感谢您的帮助
【问题讨论】:
-
添加一个
Do while not rs.EOF循环。不要忘记在循环内rs.MoveNext...仅供参考 Debug.Print 在新行替换旧行之前仅处理大约 200 行... -
谢谢。在这种情况下和一般情况下
Do Until rs.EOF是否与Do While not rs.EOF完成相同的事情?编辑*,谢谢,我有点想 debug.print 没有返回我想要的,不管我尝试了什么。我知道需要将其写入字符串。 -
Do while/do until 只是做几乎相同事情的不同方式:根据具体的用例,一种或另一种可能更可取。
标签: vba loops data-extraction