2014-09-29 76 views
1

我已经使用VBA编程MS Access多年,但从未使用过Office 2010.每当我尝试使用任何参数时,在关闭括号后都会收到消息"Expected: ="MS Access拒绝参数,始终询问“=”

例如,一个简单的messagebox接受标题,但只会产生默认参数(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 

我试图卸载和重新安装的应用程序;但是在PC上的Windows 7和我的笔记本上的Windows 8(都是64位)都会出现错误。

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

+1

难道不应该是'响应= MSGBOX(“你有没有...... '? – 2014-09-29 18:10:15

+1

在你的SELECT语句中你有Case Response,你在哪里指定它?它应该是暗淡的Response Response = msgbox(xx) – Sorceri 2014-09-29 18:12:36

回答

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")