2

我有一个包含多达 100 列的子表单的表单,但是我每次只需要查看其中的 5 列。我需要查看的列始终是名字和姓氏以及基于主窗体中所做选择的其他三列(列具有标签,例如 HT001、HT002 等)。可用的三个组合框各有一列。我到处寻找解决方案并不断寻找

我![mycontrol].columnhidden = false

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

4

1 回答 1

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"
于 2012-08-24T22:25:08.133 回答