Microsoft Access,vbYesNo 无法获取要保存的记录
Posted
技术标签:
【中文标题】Microsoft Access,vbYesNo 无法获取要保存的记录【英文标题】:Microsoft Access, vbYesNo can't get record to save 【发布时间】: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 并仅通过按钮强制保存
【参考方案1】:
与你的方法不同,但这是我的做法:
If CloseResponse = vbNo Then
Exit Sub
Else
CurrentDb.Execute "UPDATE tbl_Suggestions_Historic SET [Status] = 'Closed By User', [ReasonClosed] = '" & ClosedWhy & "' WHERE ID = '" & ID & "'"
【讨论】:
以上是关于Microsoft Access,vbYesNo 无法获取要保存的记录的主要内容,如果未能解决你的问题,请参考以下文章
仅在 Microsoft access 更新时将 Microsoft Access 导出到 Mysql
RODBC 与 ms-access 错误 07002 17 [Microsoft][ODBC Microsoft Access Driver]COUNT 字段不正确
Microsoft Access 表单和 Microsoft Windows 应用程序
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
将 Microsoft SQL Server 中的文件表链接到 Microsoft Access 2016 中的表
PYODBC ProgrammingError: ('42000', "[42000] [Microsoft][Pilote ODBC Microsoft Access]