【发布时间】:2017-12-03 00:15:33
【问题描述】:
关于访问的问题,我在保存记录按钮上创建了一个 vbYesNo,它询问我是否是新记录,如果是则保存为新记录,否则我需要它来更新现有记录。
Private Sub btnSaveDetails_Click()
Dim Response As Integer
Response = MsgBox("Do you wish to create a new record?", vbYesNo, "Continue?")
If IsNull(txtLocation) Then
MsgBox "Please Enter Location Details"
Else
If Response = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.GoToRecord , , acNewRec
Me.Refresh
Me.cboSelectLocation = ""
txtLocation.SetFocus
Else
DoCmd.RunCommand acCmdUndo
End If
End If
End Sub
问题基本上是在保存按钮上询问它是否是新记录,如果是 vbNo 我需要它来更新当前记录。
【问题讨论】:
-
请阅读所有这些:How to Ask --- minimal reproducible example --- Debugging VBA Code。然后编辑您的问题,使其仅包含相关代码,并清楚地说明问题所在。
-
谢谢,看了之后发现有点难读
-
将 Else DoCmd.RunCommand acCmdUndo 替换为 Else
-
由于你使用
DoCmd.RunCommand acCmdSaveRecord,这似乎是一个绑定的形式。绑定表单中的绑定控件总是编辑当前记录(无论是新记录还是现有记录)。您不能决定保存以将数据保存到与当前记录不同的记录中。 -- 所以你必须重新考虑你的逻辑,我建议使用 Access 的工作方式 - 如果你想创建一个新记录,你首先去那里,然后编辑。 -
我已经解决了,只是使用了 cancel = true 并仅通过按钮强制保存
标签: vba ms-access-2010