日安
已创建的表=供应商、产品
我创建了一个窗体。我创建了一个组合框,用于显示特定公司的所有产品。我需要那个显示所有产品的组合框在每个产品旁边有一个复选框或任何其他控件,这样我就可以选择多个产品。
那么,如何创建仅包含已检查的产品的报告。
....newbie ms access 2007
发布于 2009-08-24 05:09:09
不幸的是,从程序员的开发角度来看,在列中包含复选框的灵活的新多值下拉组合框是不可用的。(为了满足我们自己的需求,使用这个控件的能力现在已经成为一个经常出现的要求--它是一个非常圆滑的控件)
我不确定其他发帖者是否感到困惑,或者没有意识到access 2007中的这一新功能。因此,您要求使用此功能来使用这个很酷的组合框功能来驱动参数并将参数提供给报表,这是很自然的。
不幸的是,如果没有大量的编码技巧,并且没有为所选值使用绑定表,您就不能使用该控件。(所以这是可能的,但并不容易)。
在这种情况下,推荐的方法是简单地将一个列表框拖放到提示表单上。
将列表的第一列设置为应用程序内部使用的主键或所谓的产品ID。将第二列设置为用户将在列表框中看到并选择的描述。(向导应将第一列长度设为零,以便用户看不到产品IDs如果不是,您可以在向导为您创建列表框后手动设置)。
然后,您必须在设计模式下打开表单,并在列表框的other选项卡中进行更改,以设置和允许多个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
https://stackoverflow.com/questions/1321438
复制相似问题