MS Access拒绝参数,总是要求“=”

时间:2014-09-29 17:58:19

标签: vba ms-access arguments access-vba ms-access-2010

我已经使用VBA对MS Access进行了多年的编程,但从未使用过Office 2010.每当我尝试使用任何参数时,我会在关闭括号后收到消息"Expected: ="

例如,一个简单的消息框接受标题,但只生成默认参数(vbOKCancel)。在某些情况下,我更喜欢使用vbYesNo但是如果我输入MsgBox("Do you wish to cancel",vbYesNo),那么虽然各种替代响应会下拉以供选择,但我在尝试完成语句时得到"Expected: ="。每当我尝试使用参数时都会发生这种情况 - 例如,如果我在Form对象的OnCurrent事件中使用DoCmd来显示特定记录。

示例代码:

'If closed without a preference being selected, continue:
    If IsNull(cboPreference) Then
        MsgBox ("You have not selected a preference.  Do you want to cancel?",vbYesNo)
        Select Case Response
            Case vbYes
               Exit Sub
            Case vbNo
                cboPreference.SetFocus
        End Select
    End If

我尝试卸载并重新安装应用程序;但是我的电脑上的Windows 7和笔记本电脑上的Windows 8(均为64位)都会出现错误。

我还安装了MS Access 2010的最新更新。我还能做什么?

1 个答案:

答案 0 :(得分:1)

在立即窗口中测试这两个语句,以查看括号的效果。

MsgBox("Do you wish to cancel",vbYesNo) ' complains about expected =
MsgBox "Do you wish to cancel",vbYesNo  ' this works

如果要捕获从MsgBox返回的值,请将其指定给变量......在这种情况下,您需要一个等号和括号。

Response = MsgBox("You have not selected a preference.  Do you want to cancel?",vbYesNo)

更多关于何时使用括号和函数调用,何时不使用它们......

MsgBox "Hi"
Call MsgBox("Hi")
intResponse = MsgBox("Hi")