Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 是否可以为特定记录禁用/启用Access子窗体中的控件?access2000-VBA_Ms Access_Vba_Subform - Fatal编程技术网

Ms access 是否可以为特定记录禁用/启用Access子窗体中的控件?access2000-VBA

Ms access 是否可以为特定记录禁用/启用Access子窗体中的控件?access2000-VBA,ms-access,vba,subform,Ms Access,Vba,Subform,正如标题所说,我试图根据特定记录的combobox值禁用特定记录的一些控件。因此,当用户在组合框中选择a时,字段X将被启用,但如果用户在组合框中按B,字段X将被禁用。现在的问题是子窗体中的所有字段/控件都已链接。因此,如果用户在第一条记录中按A,则所有字段X都将启用,如果用户在第二条记录中按B,则所有字段X都将禁用(也是第一条) 是否可以仅禁用一个特定的记录字段(按下组合框的字段) 我现在在VBA中拥有的是: Public Sub SoortOnderdeelTekst_Click()

正如标题所说,我试图根据特定记录的combobox值禁用特定记录的一些控件。因此,当用户在组合框中选择a时,字段X将被启用,但如果用户在组合框中按B,字段X将被禁用。现在的问题是子窗体中的所有字段/控件都已链接。因此,如果用户在第一条记录中按A,则所有字段X都将启用,如果用户在第二条记录中按B,则所有字段X都将禁用(也是第一条)

是否可以仅禁用一个特定的记录字段(按下组合框的字段)

我现在在VBA中拥有的是:

Public Sub SoortOnderdeelTekst_Click()


    Select Case SoortOnderdeelTekst.Value

      Case "Kozijnen", "Deuren", "Ramen", "Platen"

        Me.BreedteTekst.Enabled = True
        Me.BreedteTekst.SetFocus
        Me.Lengte.Enabled = False

      Case "Glaslijsten", "Zetwerk", "Onderdelen"

        Me.Lengte.Enabled = True
        Me.Lengte.SetFocus
        Me.BreedteTekst.Enabled = False

   End Select

End Sub
使其更清晰的图像:

您可以使用条件格式实现这一点,有一个启用的
属性

在“设计”视图中打开表单,选择要有条件禁用的控件,然后在功能区上转到“格式”->“条件格式”,在“规则设置”中,它是右下角的小图标

要么直接编写条件,要么在视图后面创建一个返回TRUE/FALSE的字段,我认为这样更容易管理


非常有魅力!非常感谢。