基于访问中的组合框隐藏/显示多个列

时间:2012-08-24 22:23:45

标签: vba ms-access subform

我有一个包含最多100列的子表单的表单,但我只需要在任何时候看到其中的5列。我需要看到的列总是名字和姓氏加上其他三个基于主窗体中的选择的列(列有HT001,HT002等标签)。可用的三个组合框中的每一个都有一列。我到处寻找解决方案并继续寻找

我![mycontrol] .columnhidden = false

我可以看到它如何适用于一列或两列,但如果每列都需要,我的代码需要冗长。除了大量的列之外,我还有12个不同的子表单,这些子表单是使用select case过程选择的。我正在寻找一个简单的解决方案,因为我仍在学习VBA。

1 个答案:

答案 0 :(得分:0)

如果您使用的是数据表,则可以根据所做的选择动态设置记录源。

 Me.RecordSource = "SELECT HT001, HT002 FROM MyTable"

构建sql时可以参考组合框:

  Me.RecordSource = "SELECT HT001, " & Me.Combo1 & " FROM MyTable"

有关使用带有表格字段列表的列表框的一些注意事项。

您可以将行源类型设置为“字段”列表,将行源设置为表的名称:

RowSource:  Table1 
RowSourceType:  Field List

为了选择多个字段,设置multiselect属性非常重要:

MultiSelect : Simple

您可以遍历代码中的所选项目并构建一个字段列表,以便在您的sql中使用:

For Each itm In Me.List0.ItemsSelected
  strSelect = strSelect & "," & Me.List0.Column(0, itm)
Next

strSelect = Mid(strSelect, 2)
sSQL = "SELECT " & strSelect & " FROM Table1"
相关问题