我想看看是否有命令一次显示整个记录(行)。到现在为止,我只找到显示单个列的方法。我正在使用与ms访问的mdb的ADO连接。谢谢。顺便说一句,我不知道如何在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
答案 0 :(得分:11)
首先,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
我认为管道(“|”)是一个比空格更好的分隔符,因为它不太可能出现在你的数据中。
答案 1 :(得分:2)
对于输出控制台,我不知道(因为我不知道VB),但是为了一次显示整个记录,你可以在foreach
上使用rstRecordSet.Fields
循环。 / p>
在C#中,我会这样写:
string msg = "";
foreach (Field f in rstRecordSet.Fields)
{
msg += f.Value + " ";
}
MessageBox.Show(msg);
现在,你只需找到VB语法......
答案 2 :(得分:0)
您可以使用GetString method of the Recordset object来代替逐个构建自己的字符串:
Debug.Print records.GetString(adClipString, 1)
这种方法的不幸的副作用是它似乎从记录集中删除了记录。