【问题标题】:How to check all fields of the recordset from ADO query?如何从 ADO 查询中检查记录集的所有字段?
【发布时间】:2011-03-23 07:40:00
【问题描述】:

我想看看是否有一个命令可以一次显示整个记录(行)。到目前为止,我只找到显示单个列的方法。我正在使用 ADO 连接到 ms 访问的 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

【问题讨论】:

    标签: vba ado


    【解决方案1】:

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

    其次,没有单个命令可以显示整个记录,您必须按照 Xavino 在他(她?)回答中所做的方式组装它。这是 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 
    

    我认为竖线(“|”)是比空格更好的分隔符,因为它不太可能出现在您的数据中。

    【讨论】:

    • +1 注意,如果您想快速检查整个记录集的内容,那么您可以使用 Excel 范围对象的 CopyFromRecordset 方法将整个记录集转储到 Excel 工作表中 - 请参阅 @987654321 @
    • 您也可以通过查看 |立即窗口...或使用按钮自定义您的工具栏。
    • 奇怪,但对我来说,我不能把As FieldAs String 放在那里。必须将其关闭,否则我会收到错误消息:Expected end of statement。否则工作。赞一个!
    【解决方案2】:

    对于输出控制台,我不知道(因为我不懂 VB),但是为了一次显示整个记录,您可以在 rstRecordSet.Fields 上使用 foreach 循环。

    在 C# 中,我会这样写:

    string msg = "";
    foreach (Field f in rstRecordSet.Fields)
    {
        msg += f.Value + " ";
    }
    MessageBox.Show(msg);
    

    现在,您只需找到 VB 语法...

    【讨论】:

      【解决方案3】:

      您可以使用GetString method of the Recordset object

      Debug.Print records.GetString(adClipString, 1)
      

      这种方法的一个不幸的副作用是它似乎从记录集中删除了记录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        • 2010-12-12
        • 2019-11-04
        相关资源
        最近更新 更多