我建立一个形式,在MS Access为用户输入数据,但有太多可能的领域。 大多数时候,只有大约一半的领域将被使用。
因此,我想有某些字段只出现取决于用户在之前给定的输入字段什么。
例如:用户输入项目编号,标题,然后他检查了“是/否”工程。 因为他检查了它,这意味着工程的影响,从而十几场,用户必须填写出现。
这可能吗:
1)无VBA
2)与VBA
我建立一个形式,在MS Access为用户输入数据,但有太多可能的领域。 大多数时候,只有大约一半的领域将被使用。
因此,我想有某些字段只出现取决于用户在之前给定的输入字段什么。
例如:用户输入项目编号,标题,然后他检查了“是/否”工程。 因为他检查了它,这意味着工程的影响,从而十几场,用户必须填写出现。
这可能吗:
1)无VBA
2)与VBA
也许不可能没有VBA。
随着VBA例如:
这将打开窗体后面的代码。 它会把你变成了默认代码BeforeUpdate
的事件。 我们希望Change
的事件,而不是,所以在右上角改变降下来,从BeforeUpdate
到Change
。 这会给你一点这样的代码:
Private Sub Field1_Change()
End Sub
这里面,要检查组合框的值,并根据需要隐藏字段:
假设您的组合框的名称是field(当然你的将是不同的),你添加一些代码,以便它看起来像这样隐藏字段2:
Private Sub Field1_Change()
If Field1.Value = "Yes" Then
Me.Field2.Visible = False
End If
End Sub
请注意,你需要知道你所有的字段的名称 - 这是在其他选项卡,在属性对话框(F4)名称字段。 你应该给你所有的领域懂事的名字,这样你就能明白是什么代码怎么回事。
对于一个复选框,遵循完全相同的程序,但你可能需要使用Click
事件。 只是实验。
抽样检查框代码:
Private Sub Check5_Click()
' Note: vbTrue = -1
If Me.Check5 = vbTrue Then
MsgBox ("Ticked")
Else
MsgBox ("Not Ticked")
End If
End Sub
我有一个表格中选择一个列表框的值后,将显示某些字段。 我用的是更新后的功能。 到目前为止,它已经奏效。 我的代码如下。 项目名和ProjectNumber是如果选择工程你只想要显示的字段。 中文别名和OtherNumber你只想显示,如果它是一个“NotEngineering”项目领域。
插入点击该选择项目类型字段这段代码,请转到属性表事件选项卡,并单击“更新后”,然后选择代码生成器和VBA粘贴。
Private Sub ProjectType_AfterUpdate()
If ProjectType.Value = "Engineering" Then
Me.ProjectName.Visible = True
Me.ProjectNumber.Visible = True
Else
Me.ProjectName.Visible = False
Me.ProjectNumber.Visible = False
End If
If ProjectType.Value = "NotEngineering" Then
Me.OtherName.Visible = True
Me.OtherNumber.Visible = True
Else
Me.OtherName.Visible = False
Me.OtherNumber.Visible = False
End If
End Sub
有一个办法做到不-相当,这一点没有VBA。 我肯定会推荐VBA不过,因为你可以做更多的事情吧。
而不是隐藏,尝试通过表达禁用与条件格式的不必要的字段。
你想要禁用的控制单击鼠标右键。 往下走,然后单击“条件格式”添加新的规则选择“表达为”
例如:[FLD1] = “是”
打残疾人中单击确定单击确定
现在如果场1已选择“是”,你所选择的控制将禁用。
我有同样的问题,我做了以下内容:
Private Sub Field1_Click()
If Field1 = "Yes" Then
Me.Field2.Visible = True
Else: Me.Field2.Visible = False
End If
End Sub
但是现在我有其他的问题,当我改变的记录,我选择去在最后一个记录可见该领域现已在当前记录可见,虽然我还没有任何choosen选项。
谢谢,