2012-05-30 77 views
8

我相信這很簡單,但我找不到它。在訪問表單的結束事件中,我如何取消關閉表單?我有一個測試來計算表中的記錄。如果該表有記錄,我想詢問用戶他們是否想要關閉或返回並使用它們。那麼我如何取消關閉活動?如何在關閉事件中關閉表單?

+4

不要編輯問題作爲答案!這對於閱讀爲你解決問題的人是非常困惑的。分別提供錯誤的代碼和正確的代碼是一種解決方案。 –

+0

我認爲MS-Access綁定表單很難控制有問題。不知道開發者在想什麼! – NoChance

回答

11

您可以使用卸載事件:

GlobalVar ButtonClicked 

Private Sub Form_Open(Cancel As Integer) 
    ButtonClicked = False 
End Sub 

Private ClickMe_Click(Cancel As Integer) 
    ButtonClicked = True 
End Sub 

Private Sub Form_Unload(Cancel As Integer) 
    If Not ButtonClicked Then 
     Cancel = True 
    End if 
End Sub 

Order of events for database objects

+0

我不確定我是否理解,我應該在close事件中將某些事情傳遞給Form_Unload事件? – MAW74656

+0

哦,我明白了,將測試放在Form_unload中,然後設置Cancel = True。 http://msdn.microsoft.com/en-us/library/aa211464%28v=office.11​​%29.aspx – MAW74656

+1

我已經添加了很多關於如何使用它的註釋。 – Fionnuala

0

研究和嘗試這個代碼,它爲我工作。用您選擇的名稱替換必要的變量名稱。將代碼粘貼到窗體的form_unload事件中。 警告!!!:在執行此操作後,你會發現它很難訪問您的形式設計和佈局視圖

Private Sub Form_Unload(Cancel As Integer) 
     userresponse = MsgBox("Are you sure you want close? All your work wouldn't be saved", vbYesNo, "Database Information") 
     Select Case userresponse 
     Case 6 
      Cancel = False 
      'this line opens another form in my own case 
      DoCmd.OpenForm "EngMenu" 

     Case 7 
      Cancel = True 
      'this line keeps my own form open in my own case 
      DoCmd.OpenForm "UpdateForm" 


     Case Else: 

      MsgBox "You are not allowed to perform this operation", vbInformation, "Database Information" 
     End Select 
    End Subenter code here 
1

使用「Form_BeforeUpdate(取消作爲整數)」事件,並設置取消爲True。

請注意,除非您添加一些邏輯來實際允許更新數據庫,否則根本無法關閉。