我正在使用一个包含许多页面的选项卡控件,每个选项卡都存储一个具有不同列数的子窗体。每个子窗体都必须显示一些基本信息,并且按需显示更多信息。每个子表单的OnLoad
事件定义了哪些列可见或不可见。
作为导出工具的一部分,我正在尝试构建一个循环,该循环以布尔值返回列的每个字段name,字段caption和列的[[visibility。
Dim strAns As String
Dim ctl As Control
Dim sfrm As SubForm
Set sfrm = Forms![frm_Main]![frm_Sub]
For Each ctl In sfrm.Controls
strAns = ctl.Name & "_" & ctl.Caption & "_" & ctl.columnVisible
Debug.Print strAns
Next ctl
当前,它仅使用ctl.Name
运行,但是我觉得这可能不是我的用例的正确语法。它返回每个字段名称,并在下一行返回其下的文本框的名称,因此基本上这是我需要的信息的两倍。有人有一个想法,如何达到其他两个属性?
.Caption
。 Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim rstQry As DAO.Recordset
Dim fldQry As DAO.Field
Set db = CurrentDb
Set qdf = db.QueryDefs("qrySource_frmSub")
Set rstQry = qdf.OpenRecordset
Dim dictHidden As New Scripting.Dictionary
For Each fldQry In rstQry.Fields
dictHidden.Add fldQry.Name, False
Next fldQry
qdf.Close
Dim ctl As Control
Dim frm As SubForm
Set frm = Forms![frm_Main]![frm_Sub]
For Each key In dictHidden.Keys
dictHidden(key) = frm.Controls.item(key).ColumnHidden
Next key