下面的代碼工作得很好,直到我說了代號爲vbokcancel
位...下面的代碼:VBA如果statment混亂
If Me.results.ListIndex = -1 Or Me.userfolder.ListIndex = -1 Or
Me.choice.ListIndex = -1 Then
MsgBox "Please choose something to remove"
Else
If MsgBox("Are you sure you want to delete this user from this folder?", vbOKCancel) = vbOK Then
If Me.choice.Value = "Folder" Then
username = Me.results.Column(0)
prfolder = Me.results.Column(3)
strSQL = "DELETE tblRelationship.*, tblPra.praNo, tblFolder.folder FROM tblPra INNER JOIN (tblFolder INNER JOIN tblRelationship ON tblFolder.folderID = tblRelationship.folderID) ON tblPra.praID = tblRelationship.praID WHERE (((tblPra.praNo)='" & username & "') AND ((tblFolder.folder)='" & prfolder & "'));"
CurrentDb.Execute strSQL
Me.results.Requery
ElseIf Me.choice.Value = "Username" Then
prfolder = Me.results.Column(0)
strSQL = "DELETE tblRelationship.*, tblFolder.folder FROM tblPra INNER JOIN (tblFolder INNER JOIN tblRelationship ON tblFolder.folderID = tblRelationship.folderID) ON tblPra.praID = tblRelationship.praID WHERE (((tblFolder.folder)='" & prfolder & "'));"
CurrentDb.Execute strSQL
Me.results.Requery
End If
End If
End If
這將激活If MsgBox("Are you sure you want to delete this user from this folder?", vbOKCancel) = vbOK
部分,但如果「確定」按鈕,點擊它直接跳到End If
並且不運行IF語句中的代碼。現在我認爲我所做的完全是編碼方面的「合法」,顯然不是......我有什麼想法來解決這個問題?
如果按下「取消」,它會執行我已經想要的操作,即關閉消息框並且用戶返回到同一屏幕..所以不需要Else語句,因爲它已經做了什麼我希望這樣做。
'如果MsgBox'部分看起來沒問題。你確定它不是'If Me.choice.Value = ..''那些行不通的行嗎?在問題後面直接添加一行'MsgBox'點擊確定「。 – Andre
嗨,我補充說,它仍然跳到第二個'結束如果'沒有顯示「點擊確定」 –
嗯。這是您的原始代碼,還是您在發佈問題時是否更改了任何內容?如果MsgBox(「你確定要從這個文件夾刪除這個用戶?」,vbOKCancel)= vbOK然後MsgBox「點擊確定」 - 它應該顯示第二個MsgBox如果您單擊確定。 – Andre