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

Posted

技术标签:

【中文标题】Access 2007 添加记录使用相同的表单【英文标题】:Access 2007 Add Record using same form 【发布时间】:2011-07-03 23:51:04 【问题描述】:

我正在访问中创建一个简单的发票系统。我目前有一个表格,可用于查看特定 customer_id 的特定发票。我还想使用相同的表格添加新发票。打开表单时,我希望它已经知道我想使用客户 ID #x。我已经在“customer_id”字段中将发票表加入到客户表中。

目前,当我打开表单时,它会打开一个与客户完全无关的空白发票表单。基本上我想知道的是,如何将客户 ID 传递给表单,以便它知道我正在“添加”一条与已创建的客户 ID 相关联的新记录。

(通常我只是打开表格,它已经填充了发票详细信息,以及与发票详细信息相连的客户信息,我希望能够添加一条新记录,即已与客户绑定)

【问题讨论】:

【参考方案1】:

您可以在打开表单时使用DoCmd.OpenForm 方法的可选参数OpenArgs 将参数传递给它。

在表单中,可以通过Me.OpenArgs获取值。


编辑: 不,您只需将值传递给 OpenArgs,仅此而已:

DoCmd.OpenForm([Invoice Detail],acNormal,,,acFormAdd,,1) 

很遗憾,您只能通过 OpenArgs 传递一个参数。 如果你需要更多,you have to do some tricks。

【讨论】:

我试过: DoCmd.OpenForm([Invoice Detail],acNormal,,,acFormAdd,,customer_id=1) 它抛出:“Expected =" 那种工作。我现在了解如何传递参数,但现在我需要能够让表单查找客户 ID,而不是尝试查找发票 ID。 我不确定我是否理解你现在想要做什么。您通过 OpenArgs 获得客户 ID,并且想要创建新发票。由于您即将创建发票,因此您无法查找发票 ID??【参考方案2】:

您需要在 DoCmd.OpenForm 方法调用中引用您的 OpenArgs

DoCmd.OpenForm([Invoice Detail], acNormal, , , acFormAdd, , "[customer_id] = 1") 

【讨论】:

以上是关于Access 2007 添加记录使用相同的表单的主要内容,如果未能解决你的问题,请参考以下文章

仅当 Access 2007 中不存在时才添加记录

通过弹出子表单 (2) 添加新子表单 (1) 记录后重新查询子表单 (1) - Access 2007

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

Access 2007 使用选项卡将多个子表单链接到主表单的最佳方式

MS Access 表单:添加表格/网格视图

Access Access 2007中的记录集问题