我有两个MS Access表: IdMhs 和 T_UKT 。我想根据[IdMhs].[SPP]
中的某些条件自动填写[T_UKT].[UKT]
。我不能把它放在查询关系中,因为无法在表单上编辑行。
所以我创建了一个表单,然后通过使用自动获得了数字 SPP (表单上的文本框),并且工作正常:
=DLookUp("SPP";"T_UKT";"UKT = " & [Form].[UKT])
问题是:查找值只显示在表单上,结果未填入表([IdMhs].[SPP]
)的字段中。
知道我应该写什么表达式来自动填写 IdMhs 表吗?
答案 0 :(得分:1)
需要宏或VBA代码才能将值保存到表中。如果form绑定到IdMhs表,就像:
Me!SPP = Me.tbxSPP
真正的诀窍是弄清楚将代码放入哪个事件。你有一个控制(可能是组合框),其中选择了UKT值?使用其AfterUpdate事件。
为什么需要保存SPP值而不只是在连接表的查询中检索它?
表关系的本质是什么? T_UKT是查找表吗?如果是这样,那么它应该能够以RecordSource的形式包含它,然后SPP值可以在文本框中显示,而不需要DLookup。域聚合函数可以在表单和报表上执行缓慢,应该是最后的选择。将使用相同的代码来保存值。查询连接应该是'显示来自IdMhs的所有记录,并且只显示来自T_UKT的匹配'的所有记录。将绑定到T_UKT SPP字段的文本框设置为Locked Yes,TabStop No.