Vba 调试。打印表中的所有数据

Vba 调试。打印表中的所有数据,vba,loops,data-extraction,Vba,Loops,Data Extraction,我正在尝试使用记录集代码循环表中的所有字段并进行调试。按您自然会读取表的顺序打印它们的值和字段名,即从左到右跨列读取,然后打印到下一行 我已经完成了我想做的,但只是第一排。代码如下: 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.Co

我正在尝试使用记录集代码循环表中的所有字段并进行调试。按您自然会读取表的顺序打印它们的值和字段名,即从左到右跨列读取,然后打印到下一行

我已经完成了我想做的,但只是第一排。代码如下:

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循环,但无论我尝试什么,都无法获得结果,或者在无限查询中锁定访问

感谢您的帮助

未经测试:

Sub RecordSets()
    Const SEP as String = vbTab
    Dim db As Database
    Dim rs As Recordset, numFlds As Long
    Dim i As Long, s As String, sp as string
    Set db = CurrentDb
    Set rs = db.OpenRecordset("tbl1")

    numFlds = rs.Fields.Count

    'print the headers (field names)
    For i = 0 To numFlds  - 1
        s = s & sp & rs.Fields(i).Name
        sp = SEP '<< add separator for subsequent items
    Next
    Debug.Print s

    'print the data
    sp = ""  '<< clear the separator
    Do While Not rs.EOF
        For i = 0 To numFlds - 1
            s = s & sp & rs.Fields(i).Name
            sp = SEP
        Next
        Debug.Print s
        rs.MoveNext
    Loop

    rs.Close
    db.Close
End Sub
子记录集()
Const SEP as String=vbTab
dimdb作为数据库
将rs作为记录集调暗,numFlds作为长
尺寸i为长,s为字符串,sp为字符串
Set db=CurrentDb
Set rs=db.OpenRecordset(“tbl1”)
numFlds=rs.Fields.Count
'打印标题(字段名称)
对于i=0到numFlds-1
s=s&sp&rs.Fields(i).名称

sp=SEP'添加一个
Do而不是rs.EOF
循环。别忘了在循环中
rs.MoveNext
。。。仅供参考调试。在新行替换旧行之前,Print仅处理约200行…谢谢。在这种情况下和一般情况下,
Do直到rs.EOF
完成的事情是否与
Do而不是rs.EOF
完成的事情相同?编辑*谢谢,我觉得debug.print不管我怎么做都不会返回我想要的。我知道,需要将其写入字符串。Do-while/Do-until是做几乎相同事情的不同方法:根据具体的用例,一种或另一种可能更可取。