Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在msgbox中显示单个db值_Ms Access_Vba_Ms Access 2007_Ms Office - Fatal编程技术网

Ms access 在msgbox中显示单个db值

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)行中遇到以下错误。知道为什么会这样吗?查询返回一个值,我希望在消息框中显示

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)
行中遇到以下错误。知道为什么会这样吗?查询返回一个值,我希望在消息框中显示该值。

如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
显示之前,应该先将记录集结果转换为字符串。