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 添加记录使用相同的表单的主要内容,如果未能解决你的问题,请参考以下文章
通过弹出子表单 (2) 添加新子表单 (1) 记录后重新查询子表单 (1) - Access 2007