2012-02-05 22 views
0

我想知道是否有人知道如何爲保存記錄確認創建自定義消息,只使用宏而不使用用戶編碼的VBA。我已經爲VBA中的以前的項目完成了這一步,但是這次我只嘗試使用Access的宏構建器。我使用Access 2010來構建此項目。使用自定義確認對話框保存記錄內置宏

到目前爲止,我已經得到了

IF 6=MsgBox("Are you sure you want to delete this customer's information? WARNING, this is unrecoverable."),52 Then 
RunMenuCommand DeleteRecord 
MessageBox Message "Customer information deleted." 

這使得一個是沒有對話框,首先作爲確認,但隨後它顯示了內置確認接入捆綁了DeleteRecord命令。

謝謝, 傑克。

回答

1

請勿使用運行菜單命令。例如,您可以刪除使用SQL

currentdb.execute "DELETE * FROM myTable WHERE myTableId=" & idOfRecordToBeDeleted 
0

尋找類似的解決方案我和大費周章之後,有一個解決辦法。使用Access2013,但應該是相同的邏輯。

在我的情況下,我想要一個是/否的消息框來添加一個是的記錄,並重新加載表單。在你的情況下,忽略過濾器和值,它會更簡單...如果是,RunMenuCommand =刪除記錄Else StopMacro。你可以爲No設定細節,但Else會爲我處理。

細節:我有一個組合框(宏綁定到組合框/更新屬性後)來選擇和篩選記錄。如果有匹配的記錄,則顯示它們(他們)。如果沒有匹配的記錄,則顯示消息(無記錄),並提示用戶添加一個(是)或不是(否)。

整個宏....(無VB)

ApplyFilter Filter Name (blank) Where Condition =="[cID]= "& Str(Nz([Screen].[ActiveControl],0)) Control Name (blank)

If IsNull(eID]) Then If MsgBox("No record",4,"Nothing found")=6 Then SetProperty Control Name cID Property Value Value =Str(Nz([Screen].[ActiveControl],0)) StopMacro Else RunMenuCommand Command RemoveAllFilters StopMacro End If End If