从相关表中设置文本框默认值

时间:2016-05-19 07:51:18

标签: vba ms-access access-vba default-value

我在接入VBA时自学成才,而且我现在已经试图将这个问题弄清楚了多年,但却无法让它发挥作用。任何建议都会非常感激。

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

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

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

每个工作人员只有1个记录,其中阶段endDate为空。这个Dlookup在vba编辑器中运行得很好但是当我将它设置为文本框的默认值时它不起作用。我希望这是因为它尝试在表单打开之前找到默认值,因此txtStaffID控件为空。

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

1 个答案:

答案 0 :(得分:0)

创建名为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作为textBox的控制来源。

确保query is not read only