使用来自单独表单 Access 2007 的用户输入自动填充表单中的字段

Posted

技术标签:

【中文标题】使用来自单独表单 Access 2007 的用户输入自动填充表单中的字段【英文标题】:Auto-populate a field in a form with user input from a seperate form Access 2007 【发布时间】:2012-07-05 21:40:21 【问题描述】:

我的设置: 我有两个表:tblAuthors 和 tblBooks。 tblAuthors 包括一个作者列表:Kurt Vonnegut、Frank Herbert、J.K. Rowling、John Nichols 等。tblBooks 包括一个列表作者:Slaughter House Five、Cat's Cradle、Monkey House、Dune、Harry Potter、Milagro Beanfield War 等。

我也有两种形式:frmAuthor 和 frmBooks。 frmAuthor 包括作者姓名以及与此问题无关的更多作者特定信息(出生日期、出生地点、首选流派、灵感等)。 frmBooks 包括作者姓名以及其他一些信息(出版公司、完成日期、类型)。

tblBooks 和 tblAuthors 之间也存在一对多的关系; tblAuthors 中的作者用作此关系的主键。只是为了让您更好地了解这些表的作用方式以及数据库组织背后的思想。

这些表单交互的方式如下: 更新此数据库的预期方法是按书将信息输入 frmBooks。如果缺少该书的作者,则会出现一个窗口,提示用户从 NotInList 事件中添加新作者。如果用户点击“是”,frmAuthors 将弹出。用户将输入作者信息,然后点击表单底部的“完成”命令,这将使用户返回到 frmBooks 以完成输入另一本书的数据。

我正在寻找一种方法来根据来自 NotInList 事件的输入自动填充“作者”字段。目前它被保存为临时变量,第二个表单上的作者输入将其保存在表中。我只是想简化流程,让第一个表单中的输入继续并自动填充第二个表单中的相同字段。

我对 VBA 不是很熟悉,并且可以使用一个针对可能不了解代码所有方面的人的解释。

提前感谢您给我的任何帮助!

【问题讨论】:

大多数标准事件都有免费的代码:support.microsoft.com/kb/197526 因为您的 tblAuthors 表将保存在 tblBooks 中用作外键的主键信息,所以最好先输入作者数据(为了参照完整性),而不是书。使用 frmBooks 中的组合框来保存所有已知作者的列表。如果该列表中缺少作者,请让用户先转到 frmAuthors 输入数据。组合框在这里发挥了重要作用,它不允许用户每次都键入同一作者,从而消除了可能产生新的冗余记录的拼写错误。 【参考方案1】:

如果要引用其他表单中的字段,请使用 -

Forms![frmBooks]![txtAuthor].Text

【讨论】:

以上是关于使用来自单独表单 Access 2007 的用户输入自动填充表单中的字段的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 不允许用户删除子表单中的记录

在 Access 2010 中查看时,Access 2007 表单中的幻影框

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

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

Access Access 2007中的记录集问题

基于查询的子表单中的字段的 Access 2007 验证帮助