社区首页 >问答首页 >ms access通过复选框创建报告

ms access通过复选框创建报告
EN

Stack Overflow用户
提问于 2009-08-24 01:51:21
回答 1查看 1.6K关注 0票数 0

日安

已创建的表=供应商、产品

我创建了一个窗体。我创建了一个组合框,用于显示特定公司的所有产品。我需要那个显示所有产品的组合框在每个产品旁边有一个复选框或任何其他控件,这样我就可以选择多个产品。

那么,如何创建仅包含已检查的产品的报告。

....newbie ms access 2007

EN

回答 1

Stack Overflow用户

发布于 2009-08-24 05:09:09

不幸的是,从程序员的开发角度来看,在列中包含复选框的灵活的新多值下拉组合框是不可用的。(为了满足我们自己的需求,使用这个控件的能力现在已经成为一个经常出现的要求--它是一个非常圆滑的控件)

我不确定其他发帖者是否感到困惑,或者没有意识到access 2007中的这一新功能。因此,您要求使用此功能来使用这个很酷的组合框功能来驱动参数并将参数提供给报表,这是很自然的。

不幸的是,如果没有大量的编码技巧,并且没有为所选值使用绑定表,您就不能使用该控件。(所以这是可能的,但并不容易)。

在这种情况下,推荐的方法是简单地将一个列表框拖放到提示表单上。

将列表的第一列设置为应用程序内部使用的主键或所谓的产品ID。将第二列设置为用户将在列表框中看到并选择的描述。(向导应将第一列长度设为零,以便用户看不到产品IDs如果不是,您可以在向导为您创建列表框后手动设置)。

然后,您必须在设计模式下打开表单,并在列表框的other选项卡中进行更改,以设置和允许多个select=yes。此设置将允许用户在列表框中选择多个选项。

然后,需要在窗体上放置一个按钮,该按钮后面有以下代码,该按钮从列表框中获取参数或值的列表,并将它们传递给报表

代码语言:javascript
代码运行次数:0
复制
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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1321438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档