Office中国论坛/Access中国论坛

标题: 关于命令控件下拉列表的设计需求 [打印本页]

作者: jackysu78    时间: 2009-6-26 12:17
标题: 关于命令控件下拉列表的设计需求
本帖最后由 jackysu78 于 2009-6-26 12:20 编辑

如附图:子窗体数据源为查询,因实际报价对象的不同,而从标准单价、零售单价、批发单价以及数量中选择不同的组合打印报价单。因本人能力有限,现在的解决方法是根据实际发生的组合分别设计了多个报表格式。
如上虽能解决问题,但是这只是本人的最笨方法,故提出来请各位热心朋友指点思路或者提供学习的实例。
大概目标是:
1、可否以一个命令控件的类似组合框一样的下拉选项代替现如附图似的多个命令控件
2、可否只设计一个报表,再根据需要选择组合选项,然后自动地调整报表格式满足显示需要。

感谢!
作者: luhao    时间: 2009-6-26 12:47
1# jackysu78


可以用个组合框,用Case来选择操作
参考代码:
Private Sub tx数据来源_Change()
  Select Case tx数据来源
    Case "qy-L发料单列表"
        If Forms("fms-查询列表清单Master").Child.SourceObject <> "fms-L查询列表发料清单" Then '避孕闪屏
            Forms("fms-查询列表清单Master").Child.SourceObject = "fms-L查询列表发料清单"
            Forms("fms-查询列表清单Master").Label1.Caption = "发料单  查询列表清单"
        End If
    Case "qy-L补料单列表"
        If Forms("fms-查询列表清单Master").Child.SourceObject <> "fms-L查询列表补料清单" Then  '避孕闪屏
            Forms("fms-查询列表清单Master").Child.SourceObject = "fms-L查询列表补料清单"
            Forms("fms-查询列表清单Master").Label1.Caption = "补料单  查询列表清单"
        End If
    Case "qy-L入库单列表"
        If Forms("fms-查询列表清单Master").Child.SourceObject <> "fms-L查询列表入库清单" Then  '查询.qy-入库单列表 避孕闪屏
            Forms("fms-查询列表清单Master").Child.SourceObject = "fms-L查询列表入库清单"       '查询.qy-入库单列表
            Forms("fms-查询列表清单Master").Label1.Caption = "入库单  查询列表清单"
        End If
    Case "qy-L领料单列表"
        If Forms("fms-查询列表清单Master").Child.SourceObject <> "fms-L查询列表领料清单" Then  '避孕闪屏
            Forms("fms-查询列表清单Master").Child.SourceObject = "fms-L查询列表领料清单"
            Forms("fms-查询列表清单Master").Label1.Caption = "领料单  查询列表清单"
        End If
    Case "qy-L出库单列表"
        If Forms("fms-查询列表清单Master").Child.SourceObject <> "fms-L查询列表出库清单" Then  '避孕闪屏
            Forms("fms-查询列表清单Master").Child.SourceObject = "fms-L查询列表出库清单"
            Forms("fms-查询列表清单Master").Label1.Caption = "领料单  查询列表清单"
        End If
  End Select
End Sub

我相信以上代码还可以精减
作者: jackysu78    时间: 2009-6-26 12:56
感谢关注!
你这样是通过变更数据源来达到一定目的,但是这样的问题是:
1、现在子窗体的数据源是一个,而且包括了我上面所讲的可选项,包括标准单价、零售单价、批发单价以及数量
2、按你这样的方法,应该还是要有各种组合的单独报表,目前报表的情况是前面的基本资料格式是一样的,而只是可选项因发生不同变化而需要调整。
不知道我说的是否清楚,还请更多朋友关注这个问题。谢谢!
作者: t小宝    时间: 2009-6-26 14:05
1、如果报表数量有可能经常变动增加,可用一个表来储存报表信息,在窗体上用组合框或列表框显示,再用一个命令按钮,根据所选项,打开相应报表。
2、在ACCESS中动态报表比较麻烦,还不如设计多个报表。
作者: jackysu78    时间: 2009-6-26 22:31
谢谢!
其他朋友有不同意见吗?
作者: jackysu78    时间: 2009-6-27 09:05
再顶一次吧
作者: luhao    时间: 2009-6-27 22:52
6# jackysu78

其实可以自定多个查询语法在VAB中
行来源类型为“值列表”
行来源:“标准单价;标准单价”
Private Sub tx数据来源_Change()
dim sql标准单价 as string
dim sql零售单价 as string
sql标准单价= "******"  '或做个查询表
sql零售单价="******"
Select Case tx数据来源
    Case "标准单价"
           me.child1.SourceObject=sql标准单价
    Case "零售单价"
           me.child1.SourceObject=sql零售单价
end select

目的,是子窗体的数据源隋组合框的的选择变化而变化。
也可用宝哥的方法,把语法存在自定义的表中,再提取查询。
作者: jackysu78    时间: 2009-6-27 23:25
谢谢关注!
看样子我还是有必要弄个实例上来大家探讨一下。
其实我的目的包括如下:
1、主窗体设计一个类似组合框的命令控件,带下拉选项,这样trynew老师有个例子,但那是在toolbar中的应用,当然我也不知道单独一个命令控件能否达到这样的效果
2、按7#好友的意思,那应该是要多个查询,我想是否可以通过组合选项来达到目的,也就是从一个数据源中,根据组合选项的不同来控制报表中显示相应的组合,当然这里对组合选项的显示格式又要加控制

好象有点复杂!呵呵,还是希望继续研究这个问题,我想这个功能也比较适用,值得去学习一下。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3