Access 2003中的表单和子表单

时间:2011-03-17 15:29:07

标签: ms-access

我只有一个表,我想为用户创建一个表单,以便轻松填充表格。如果从下拉列表中选择某种类型的检查(火灾),则表格中至少有5个字段需要填写,否则为空白。

我想创建一个子窗体,只有在主窗体的下拉列表中选择检查类型“Fire”时才会弹出。我怎么能这样做?

我使用向导创建表单,因为我真的不知道VBA而被卡住了。到目前为止,我进入表单上的检查类型字段,单击“属性”,然后单击“更新后”,然后选择我创建的宏,以便在检查类型=“火”,但它无效。

无论我选择何种类型的检查,子窗体都会打开,然后子窗体上的ID号与主窗体不对应(子窗体ID将保留在id#1上)。此外,当我在子表单中输入数据时,信息将在下一条记录中结束。

我想知道是否发生了这种情况,因为我使用表单和子表单将数据输入到同一个表中。我希望这清楚地解释了我想做什么。

3 个答案:

答案 0 :(得分:1)

试着改善Kovags的优秀主张:

Sub InspectionType_AfterUpdate
    Subform1.Visible=(InspectionType.Text="Fire")
End Sub

Sub Form_Current
    InspectionType_AfterUpdate
End Sub

答案 1 :(得分:0)

只需更改此代码即可调整您的需求,并将其添加到“检查类型”文本框的“更改事件”中:

Sub InspectionType_Change
  if InspectionType.Text="Fire" Then
    Subform1.Visible=True
  else
    Subform1.Visible=False
  endif
End Sub

答案 2 :(得分:0)

如果字段在同一个表上,那么我建议将子表单上的字段放在主表单上。然后根据组合框的状态使它们可见或不可见。

使用子表单会变得有点复杂,因为除了其他方面之外,您需要在打开子表单之前将记录保存在主表单中。否则,子窗体将无法更新记录,并将为您提供锁定消息。