无法在 access 2007 拆分表单中创建新记录

Posted

技术标签:

【中文标题】无法在 access 2007 拆分表单中创建新记录【英文标题】:Unable to create new record in access 2007 split form 【发布时间】:2011-11-07 14:16:13 【问题描述】:

我一直在开发 access 2007 数据库,但在通过拆分视图表单添加新记录时遇到了问题。

为了防止意外删除字段,我在每个表单上添加了一个锁定按钮(下图中右起第二个)。用户切换此按钮以在编辑模式和只读模式之间切换。默认情况下,表单处于只读模式。

按钮单击事件上的此 VBA 代码切换以下属性 AllowEditsAllowAdditionsAllowDeletions,并使用以下代码切换“删除记录”和“添加记录”按钮的启用状态.

Private Sub Form_Load()
    ReadOnly (True)
End Sub

Private Sub btnLock_Click()
    If lblEditMode.Caption = "Edit Mode" Then
        ReadOnly (True)
    Else
        ReadOnly (False)
    End If
End Sub

Private Function ReadOnly(value As Boolean)
    Dim enableState As Boolean
    enableState = Not value
    If Dirty Then Dirty = False
    AllowEdits = enableState
    AllowAdditions = enableState
    AllowDeletions = enableState
    BtnNew.Enabled = enableState
    BtnDelete.Enabled = enableState
    If enableState = False Then
        lblEditMode.Caption = ""
    Else
        lblEditMode.Caption = "Edit Mode"
    End If
End Function

最初,我在表单底部使用自定义导航按钮,但后来删除了这些按钮以支持使用拆分表单。

现在我在表单上所能做的就是编辑或删除记录。我无法添加新记录。

我已经浏览了我能想到的使用设计视图的所有属性,但没有发现任何可能导致这种情况的东西。有什么想法可能导致这种情况吗?

我已经修改了许多表单以使用拆分视图,但现在它们都遇到了同样的问题。

“添加新”按钮(使用标准宏)会生成消息“您无法转到指定的记录”。表单的数据表部分未在底部显示可插入的行。此外,主页功能区上的“添加”按钮会在AllowAdditions 的状态切换时启用和禁用。

编辑:将表单从拆分表单更改回单个表单允许我添加新记录。但是,一旦我再次将表单改回拆分表单,我就无法添加新记录。

【问题讨论】:

第二个表单是子表单吗?您能否向我们提供有关基础表/查询的详细信息?! 不,这是一个拆分表单,即表单顶部和底部表示相同的数据。底部的数据网格显示了许多记录,但表单的主要部分(顶部)显示了在数据网格中选择的记录。数据没有什么异常。它只是一系列不同类型的字段(字符串、长、日期、索引自动递增 PK ID 字段)以及许多查找表(由组合框描述)。 您是否在网上任何地方都可以下载该样本/测试数据库?在我看来,它确实可能是一个 Access 错误。我建议您也可以在 UtterAccess 上发帖。那里有几个 MVP 可能有兴趣为您研究这个问题。 感谢 HK1。我不确定我是否可以把它放到网上(至少不是现在的形式)。我不熟悉 UtterAccess TBH,但我会研究一下。 【参考方案1】:

我知道这是一个迟到的回复。但这可能对其他人有所帮助。 我认为您将所有控件都放在了表单标题中。请将所有控件放在详细信息部分并尝试一下..希望这能解决问题。

【讨论】:

以上是关于无法在 access 2007 拆分表单中创建新记录的主要内容,如果未能解决你的问题,请参考以下文章

是否有类似于 Access 2007 拆分表单的 .NET 控件?

如何在 MS Access 2007 中创建报告?

Access 2007 添加记录使用相同的表单

如何编写用于在表中创建新拆分分区的 plsql 代码?

在JNI中创建新对象

FindFirst NoMatch 基于 Access 2007 表中的 2 列