【问题标题】:How to add new record to subform如何将新记录添加到子窗体
【发布时间】:2018-06-22 13:32:54
【问题描述】:

我最近在When select value from combo, highlight that record in Access subform datasheet 上获得了帮助,现在我正在尝试执行相关任务。

如何让子表单为我提供一个新行,以便通过主表单上的按钮输入数据?

尝试了这里找到的方法,但没有成功:http://www.access-programmers.co.uk/forums/showthread.php?t=26537

编辑:不确定是否重要,但我的子表单应该更新的表是与 SQL Server 的链接表。

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    请首先通过打开您的子表单记录源所基于的表或查询来确保您的记录源是可更新的,并确保您可以编辑和添加新记录。如果不是,那么您的 SQL Server 链接表可能缺少唯一标识符。要创建一个,只需删除链接表,然后重新链接它。重新链接后,MS Access 应提示您指定唯一索引(可能需要多个字段才能使其真正唯一)。然后再试一次。

    【讨论】:

    • -你明白了!我的 SQL 表确实有一个主键,我可以从 Access 中编辑该表,但我的子表单的数据源是一个不包含主键的查询。我添加了那个键,现在一切正常!你就是男人!
    【解决方案2】:

    如果子表单数据表是可编辑的并且启用了 AllowAdditions,它应该已经为您提供了用于添加新行的 * 按钮。

    如果不是,那么您需要检查数据表的属性并更改它们以匹配您实际需要的内容。

    【讨论】:

    • -AllowAdditions 属性就是这样设置的。
    • -AllowAddition 设置为 True。我没有得到 *(星号)来添加新项目。
    • 如果您编辑子表单的 Recordsource,它是否有用于添加新记录的星号按钮?如果没有,您需要确定您的 SQL 是如何阻止添加新记录的。贴出子表单的SQL...
    【解决方案3】:

    我已经有一段时间没有使用 Access 了。子窗体的 RecordSource 属性是否为您提供基础表或查询。如果源是可编辑的,您应该能够添加一条记录,然后重新查询或刷新子表单。

    【讨论】:

    • 如果您填写了 Linked Master 和 Child Fields,它会更加自动。
    【解决方案4】:

    对于那些只需要在子表单中添加新记录的人:只需将焦点从主表单设置到子表单。然后使用 DoCmd 添加新记录:

    Forms![MainFormName]![SubFormName].SetFocus
    DoCmd.GoToRecord , , acNewRec
    

    【讨论】:

    • 我可以用这个,但是我不太清楚我会把它放在什么过程中。另外,每次子表单获得焦点时它会添加一条新记录吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多