|
怎样判断subctl.name包含在两个不同的集合中,如果包含在('配件代号','配件名称','产品编号','产品名称')中,则subctl.ColumnHidden=False,如果包含在rs记录集中,则subctl.ColumnHidden=False,如果都不包含,则subctl.ColumnHidden=true。
下面的代码可以运行,但感觉不太妥,第一个集合中的字段名设置了两次属性,请教大家有没有更好的办法
Private Sub Combo10_AfterUpdate()
Dim rs As Recordset
Dim subctls As Controls
Dim subctl As Control
Set subctls = Me.加工单价表_子窗体.Form.Controls
Set rs = CurrentDb.OpenRecordset("select [工序名称] from [单价组成表] where [部门代号] = '" & DLookup("[部门代号]", "[部门信息]", "[部门] = '" & Combo10.Value & "'") & "' ")
For Each subctl In subctls
If subctl.ControlType = acTextBox And IsNull(Eval("'" & subctl.Name & "' in ('配件代号','配件名称','产品编号','产品名称') ")) = False Then
rs.FindFirst " 工序名称='" & subctl.Name & "'"
If rs.NoMatch Then
subctl.ColumnHidden = True
Else
subctl.ColumnHidden = False
End If
If Eval("'" & subctl.Name & "' in ('配件代号','配件名称','产品编号','产品名称') ") Then
subctl.ColumnHidden = False
End If
End If
Next
rs.Close
End Sub |
|