美好的一天
创建表=供应商,产品
我创建了一个表单。我创建了一个组合框,显示特定公司的所有产品。 我需要一个显示所有产品的组合框,每个产品旁边都有一个复选框或任何其他控件,以便我可以选择多个产品。
然后,我如何创建仅检查产品的报告。
...新手 ms access 2007
答案 0 :(得分:4)
不幸的是,从程序员的开发角度来看,没有列出包含在列中的复选框的光滑的新多值下拉组合框。 (根据我们自己的需要使用这种控制的能力现在变成了一种常见的请求 - 它是非常光滑的控制)
我不确定其他海报是否会在访问2007中混淆或不知道这个新功能。所以你要求这个功能使用这个很酷的组合框功能来驱动和输入参数是非常自然的。报告。
不幸的是,如果没有很多编码技巧并且对所选值使用绑定表,则无法使用该控件。 (所以这是可能的,但并不容易)。
在这种情况下,建议的方法是将列表框放在提示表单上。
使listbo的第一列成为应用程序内部使用的主键或所谓的产品ID。使第二列成为用户将看到的描述并在列表框中选择。 (向导应使第一列长度为零,以便用户看不到产品ID - 如果不是,您可以在向导为您创建列表框后手动设置此项。)
然后,您必须在设计模式下打开表单并更改列表框的其他选项卡以设置并允许multi select = yes。此设置允许用户在列表框中选择多个选项。
然后,您需要在表单上放置一个按钮,该按钮后面有以下代码,该按钮从列表框中获取参数或值列表并将它们传递给报表
Dim MySql As String
Dim MySelection As Variant
MySql = ""
If Me.lstProducts.ItemsSelected.Count > 0 Then
For Each MySelection In Me.lstProducts.ItemsSelected
If MySql = "" Then
MySql = "("
Else
MySql = MySql & " or "
End If
MySql = MySql & " ProductID = " & Me.lstProducts.Column(0, MySelection)
Next MySelection
MySql = MySql & ") "
End If
End If
Docmd.OpenReprot “nameOfRepor”,acViewPreview,,mySql
以上假设您的产品ID字段为ProductID