Vba 如何从ADO查询中检查记录集的所有字段?
我想看看是否有一个命令可以同时显示整个记录(行)。到现在为止,我只找到了显示单个列的方法。我使用ADO连接到ms access的mdb。谢谢顺便问一下,我不知道如何用MS Access的VB表单打印消息……VB是否提供了一个控制台来显示这一点?调试。打印不给我任何东西,我只成功与MsgBoxVba 如何从ADO查询中检查记录集的所有字段?,vba,ado,Vba,Ado,我想看看是否有一个命令可以同时显示整个记录(行)。到现在为止,我只找到了显示单个列的方法。我使用ADO连接到ms access的mdb。谢谢顺便问一下,我不知道如何用MS Access的VB表单打印消息……VB是否提供了一个控制台来显示这一点?调试。打印不给我任何东西,我只成功与MsgBox With cmdCommand .ActiveConnection = conConnection .CommandText = "SELECT * from tableA"
With cmdCommand
.ActiveConnection = conConnection
.CommandText = "SELECT * from tableA"
.CommandType = adCmdText
End With
With rstRecordSet
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockReadOnly
.Open cmdCommand
End With
If rstRecordSet.EOF = False Then
rstRecordSet.MoveFirst
Do
MsgBox rstRecordSet.Fields(0) & " " & rstRecordSet.Fields(1)
rstRecordSet.MoveNext
Loop Until rstRecordSet.EOF = True
End If
对于输出控制台,我不知道(因为我不知道VB),但是为了一次显示整个记录,可以在
rstRecordSet.Fields
上使用foreach
循环
在C#中,我会这样写:
string msg = "";
foreach (Field f in rstRecordSet.Fields)
{
msg += f.Value + " ";
}
MessageBox.Show(msg);
现在,您只需找到VB语法…首先,
Debug.Print
打印到VB[A]编辑器的即时窗口。如果未显示,请按Ctrl-G
其次,没有一个命令可以显示整个记录,您必须按照Xavinou在其(她?)答案中的方式来组装它。下面是VB语法,忽略记录集创建和EOF检查(注意,我已经声明了变量——您正在使用Option Explicit,是吗?):
我认为管道(“|”)是一个比空格更好的分隔符,因为它不太可能出现在您的数据中。您可以使用以下命令,而不是逐段构建自己的字符串:
此方法的一个不幸的副作用是,它似乎将记录从记录集中删除。+1 NB如果您想快速检查整个记录集的内容,则可以使用Excel范围对象的
CopyFromRecordset
方法将整个记录集转储到Excel工作表中-请参阅,您也可以使用查看|即时窗口。。。或者用按钮自定义工具栏。奇怪,但对我来说,我不能将作为字段
或作为字符串
。必须将其关闭,否则会出现错误:预期语句结束
。不然就行了。荣誉
Dim fld As Field
Dim msg As String
For Each fld In rstRecordSet.Fields
msg = msg & fld.Value & "|"
Next
Debug.Print msg 'or MsgBox msg
Debug.Print records.GetString(adClipString, 1)