Ms access 在msgbox中显示单个db值
access 2007文件中包含以下vba代码:Ms access 在msgbox中显示单个db值,ms-access,vba,ms-access-2007,ms-office,Ms Access,Vba,Ms Access 2007,Ms Office,access 2007文件中包含以下vba代码: Private Sub Form_Load() Dim a As String Dim b As DAO.Recordset a = " select col1 from table1 where id = 1 " Set b = CurrentDb.OpenRecordset(a) MsgBox (b) b.Close End Sub 但是我在MsgBox(b)行中遇到以下错误。知道为什么会这样吗?查询返回一个值,我希望在消息框中显示
Private Sub Form_Load()
Dim a As String
Dim b As DAO.Recordset
a = " select col1 from table1 where id = 1 "
Set b = CurrentDb.OpenRecordset(a)
MsgBox (b)
b.Close
End Sub
但是我在
MsgBox(b)
行中遇到以下错误。知道为什么会这样吗?查询返回一个值,我希望在消息框中显示该值。如Matteo所述,您需要将字符串或可以转换为字符串的内容传递给MsgBox。在这种情况下,可以在select查询中指定字段
Private Sub Form_Load()
Dim a As String
Dim b As DAO.Recordset
a = " select col1 from table1 where id = 1 "
Set b = CurrentDb.OpenRecordset(a)
MsgBox b.Fields("col1") ' Msgbox b("col1") should also work
b.Close
End Sub
如果希望
MsgBox
显示记录集第一列中包含的值,可以这样做
MsgBox b(0)
但是,您实际上不需要打开记录集来检索单个值。您可以改用DLookup
表达式
MsgBox-DLookup(“col1”、“table1”、“id=1”)
MsgBox将字符串
(或字符串可转换,如整数
,长
)作为输入;我认为b
不是String
,而是一个对象DAO.RecordSet
。在通过MsgBox
显示之前,应该先将记录集结果转换为字符串。