ms访问通过复选框创建报告

时间:2009-08-24 09:51:21

标签: ms-access

美好的一天

创建表=供应商,产品

我创建了一个表单。我创建了一个组合框,显示特定公司的所有产品。 我需要一个显示所有产品的组合框,每个产品旁边都有一个复选框或任何其他控件,以便我可以选择多个产品。

然后,我如何创建仅检查产品的报告。

...新手 ms access 2007

1 个答案:

答案 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