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]