在ASP.NET中,我可以选择从数据源构建CheckBoxList控件,其中项的值可以是“Id”列(例如),而复选框旁边显示的文本来自“Name” “专栏。
是否可以使用VBA为Access 2003执行类似的操作?我试图尽可能避免硬编码项目列表,但无法弄清楚如何做类似的事情。
答案 0 :(得分:2)
只需使用列表框。 Access中的列表框很棒,因为它允许多列,但会在您询问时隐藏第一列。您可以设置列表框以允许多个选择(在列表框的属性表的另一个选项卡中,将Multiselect设置为“simple”
更好的是你不需要任何代码来填写列表框,但是可以输入sql或者只是将列表框基于SQL查询。
所以列表框看起来像这样:
将所选项目转换为有用的PK ID列表的按钮后面的代码如下所示:
Private Sub cmdFax_Click()
Dim strIDList As String
Dim vID As Variant
Dim strSQLWhere As String
For Each vID In Me.lstFaxList.ItemsSelected
If strIDList <> "" Then strIDList = strIDList & ","
strIDList = strIDList & lstFaxList.ItemData(vID)
Next
If strIDList <> "" Then
strSQLWhere = " ID in (" & strIDList & ")"
End If
DoCmd.OpenReport "rptFax", acViewPreview, , strSQLWhere
End Sub
如果你愿意,你可以在代码供应或设置列表框的SQL,如下所示:
Sub mytest()
Dim strSql As String
strSql = "Select ID, firstName, LastName, City " & _
"where city = 'Edmonton'"
Me.lstFaxList.RowSource = strSql
End Sub
所以你不需要在这里输入任何类型的列表。不清楚你是否“必须”在这里有一个实际的复选框 - 如果你愿意,你可以使用一个连续的表格,但我认为上面这么简单哦你根本不需要太多的代码来设置它