2014-09-29 40 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")