我想知道是否有人知道如何为保存记录确认创建自定义消息,仅使用宏而不是用户编码的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命令的内置确认。
谢谢, 杰克。
答案 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