尝试在Access 2010中进行组合框选择时需要一组字段

时间:2014-02-21 12:06:19

标签: ms-access-2010

在Access 2010中。

我有3个独立的字段组,可以根据组合框选择激活,但我也试图让它们成为必需。我到处都看,但似乎没有任何VB代码来制作一个字段。无论如何我能做到这一点吗?

我现在使用的代码使选定的字段组处于活动状态并使其未被选中为空白:

Private Sub Combo109_Click()

If Combo109 = "Germ" Then
cg_moisture.Enabled = True
cg_oil_nir.Enabled = True
extraneous_material.Enabled = True
fines.Enabled = True
cg_moisture.Enabled = True
cg_oil_nir.Enabled = True
extraneous_material.Enabled = True
fines.Enabled = True
Moist_cgm_nir.Enabled = False
prot_cgm_nir.Enabled = False
oil_cgm_nir.Enabled = False
meal_color.Enabled = False
load_out_temp.Enabled = False
moist_cgf_nir.Enabled = False
prot_cgf_nir.Enabled = False
oil_cgf_nir.Enabled = False
profat_nir.Enabled = False
starch_nir.Enabled = False
total_sug_nir.Enabled = False
loadout_temp.Enabled = False
screen_thrus.Enabled = False
screen_thrus.Value = ""
Moist_cgm_nir.Value = ""
prot_cgm_nir.Value = ""
oil_cgm_nir.Value = ""
meal_color.Value = ""
load_out_temp.Value = ""
moist_cgf_nir.Value = ""
prot_cgf_nir.Value = ""
oil_cgf_nir.Value = ""
profat_nir.Value = ""
starch_nir.Value = ""
total_sug_nir.Value = ""
loadout_temp.Value = ""
screen_thrus.Value = ""
screen_thrus.Value = ""

End If

1 个答案:

答案 0 :(得分:1)

如果所有控件都在表单的“详细信息”部分中,并且如果控件是启用的,则需要一个值,那么下面的代码应该有效。如果要显示更有意义的名称,请更改控件名称,或在控件“标记”字段中添加更好的名称并引用它。以下代码仅检查Textboxes和CheckBoxes - 根据您的需要进行修改。

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl         As Control
Dim blnMissing  As Boolean
Dim strMissing  As String

For Each ctl In Me.Section("Detail").Controls
    If ctl.ControlType = acTextBox Or ctl.ControlType = acCheckBox Then
        If ctl.Enabled = True Then
            'Debug.Print ctl.Name & vbTab & ctl.Value
            If ctl.Properties("Enabled") = True Then
                If Me(ctl.Name) = "" Or IsNull(Me(ctl.Name)) Then
                    blnMissing = True
                    strMissing = strMissing & ctl.Name & "; "
                End If
            End If
        End If
    End If
Next ctl
If blnMissing = True Then
    MsgBox "You are required to enter data in fields: " & strMissing, vbOKOnly + vbCritical, "Missing Required Data"
    Cancel = True
End If
End Sub