使用自定义确认对话框保存记录内置宏

时间:2012-02-05 02:38:27

标签: ms-access macros ms-access-2010

我想知道是否有人知道如何为保存记录确认创建自定义消息,仅使用宏而不是用户编码的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."

这首先是一个yes no对话框作为确认,但它显示了Access捆绑了DeleteRecord命令的内置确认。

谢谢, 杰克。

2 个答案:

答案 0 :(得分:1)

不要使用run menu命令。例如,您可以使用SQL

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

答案 1 :(得分:0)

自己寻找类似的解决方案,经过多次努力,找到解决方案。使用Access2013,但应该是相同的逻辑。

在我的情况下,我想要一个Yes / No消息框在Yes上添加一条记录,然后在No上重新加载表单。在你的情况下,省略过滤器和值,它会更简单......如果是, RunMenuCommand =删除Record Else StopMacro。你可以设置No的细节,但是Else会为我处理它。

细节:我有一个带有组合框的表单(宏绑定到组合框/ After Update属性)来选择和过滤记录。如果有匹配的记录,则显示它们(它们)。如果没有匹配的记录,则显示一条消息(无记录)并提示用户添加一个(是)或不添加(否)。

整个宏....(没有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