MS Access:多表形式,其中一个表被调用两次
Posted
技术标签:
【中文标题】MS Access:多表形式,其中一个表被调用两次【英文标题】:MS Access: multitable form where one of the table is called twice 【发布时间】:2020-07-08 19:54:54 【问题描述】:我有以下问题:
我想创建一个文档数据库。每个文档都与两个员工相关联(其中一个准备文档,另一个检查并批准它),所以我有两个简单的表:文档和员工。 Documents 表包含两个与员工 ID 相关联的字段:PreparerID 和 CheckerID。
当我尝试在一个关系中链接两个表时,Access 声明它无法确保引用完整性:
所以我放了同一张表的另一个实例:
现在我想创建一个表单,用户可以在其中为每个文档设置准备者和批准者: 在查询生成器中,我看到了这一点,因此我必须从关系生成器重复过程:
最后,在表单上,我将员工选择的两个字段都设置为 ComboBox,并将行源设置为 Employee.EmpName。
但表单无法按预期工作。当我更改某个审批人时,它也会更改他作为准备人的所有文档。所以很明显我试图以错误的方式解决这个问题。 你能帮我吗,如何正确地做到这一点?
谢谢!
【问题讨论】:
【参考方案1】:组合框绑定到错误的字段。选择正在更改员工表记录中 EmpName 的值,而不是保存文档表记录中的值。
不要在表单 RecordSource 中包含员工表。只需绑定到 Documents 表即可。
设置组合框属性:
ControlSource:Documents 表的字段 - PreparerID 或 CheckerID
行来源:SELECT ID, EmpName FROM Employees ORDER BY EmpName;
BoundColumn: 1
列数:2
列宽:0";2"
姓名部分应该放在单独的字段中,以便于搜索和按姓氏排序:FName、LName。所以组合框 RowSource 可以是:SELECT ID, LName & ", " & FName AS FullName FROM Employees ORDER BY LName, FName;
【讨论】:
以上是关于MS Access:多表形式,其中一个表被调用两次的主要内容,如果未能解决你的问题,请参考以下文章
MS Access -> Excel MsgBox 出现两次
MS Access:需要按两次退格键才能删除从 Excel 复制过来的一个字符