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是做几乎相同事情的不同方法:根据具体的用例,一种或另一种可能更可取。