从相关 table 设置文本框默认值

Setting a textbox default value from a related table

我在访问 VBA 方面是自学的,多年来我一直在努力解决这个问题,但无法让它发挥作用。如果有任何建议,我们将不胜感激。

我有一个数据库,其中包含 staff table 和绑定到此 table 的表单 frmStaff。还有一个名为 tblStages 的第二个 table,它记录了每个员工所处的辅导阶段。这些 table 与 staffID 字段相关。

我正在尝试在表单上添加一个文本框,该文本框将显示当前记录中员工的当前辅导阶段(我正在尝试避免使用子表单)。我已将此文本框的默认值设置如下:

DLookup("[stage]", "[tblStages]", "[staffID] = '" & [Forms]![frmStaff]![txtStaffID] & "' AND isnull([endDate])")

对于阶段 endDate 为空的每位员工,只有 1 条记录。此 Dlookup 在 vba 编辑器中完美运行,但当我将其设置为文本框的默认值时,它不起作用。我预计这是因为它试图在打开表单之前找到默认值,因此 txtStaffID 控件为空。

希望我已经正确解释了这个问题。如果有人能指出我正确的方向,我将不胜感激。谢谢

创建名为 qrfrmStaff:

的查询
SELECT staff.*, tblStages.stage AS Stage 
FROM tblStages INNER JOIN staff on tblStages.staffID = staff.staffID  
WHERE tblStages.endDate Is Null

qrfrmStaff 作为 frmStaff 记录源,stage 文本框的控件源。

确保 query is not read only!