vba - 如何从 ADO 查询中检查记录集的所有字段?

标签 vba ado

我想看看是否有一个命令可以一次显示整个记录(行)。到目前为止,我只找到显示单个列的方法。我正在使用 ADO 连接到 ms access 的 mdb。谢谢。顺便说一句,我不知道如何在 MS Access 的 VB 表单中打印消息....... vb 是否提供了一个控制台来显示? Debug.Print 不要给我任何东西,我只成功使用 MsgBox ...

   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

最佳答案

首先,Debug.Print打印到 VB[A] 编辑器中的立即窗口。如果未显示,请按 Ctrl-G。

其次,没有单个命令可以显示整个记录,您必须按照 Xavinou 在他(她?)的回答中的方式进行组合。这是 VB 语法,忽略记录集创建和 EOF 检查(请注意,我已经声明了变量——您正在使用 Option Explicit,是吗?):

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 

我认为管道(“|”)比空格更适合分隔符,因为它不太可能出现在您的数据中。

关于vba - 如何从 ADO 查询中检查记录集的所有字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5402131/

相关文章:

excel - excel中vba矩阵的语法

excel - 用于过滤列的VBA

sql-server - adArray 的 VBScript/ADODB 语法问题?

python - 如何使用win32com处理查询桌面搜索时溢出?

delphi - 多对多中的 AutoID 字段,使用 TDataSet/Query (Delphi/MSAccess) 插入

excel - 如果 Cell = 0,则对于每个循环删除行

excel - 在excel vba中将字符串转换为二进制

mysql - 将 ADO 记录集作为可见表打开

excel - 如何在 VBA 中管理从 ADsDSOObject 提供程序检索的日期对象?

vba - Excel VBA - 将带有文本和格式的新列添加到多个工作表