|
这个帖子是是根据天涯沦落20131的一个业务问题进行处理的结果(详细请点击这里)。大体是希望通过点击不同的订单或者物料,来查看某个订单或者某个物料的每天缺料情况。
我们知道,窗体控件是相对固定的。也就是说,一般情况下,创建好了,再添加控件是比较困难的。所以这里暂时不考虑点击时在隐藏状态下进入设计模式,根据查询来添加控件的做法,而是改为child子窗体控件的形式来处理。child控件最大的好处莫过于,它不介意数据来源到底是表还是查询,会根据实际情况进行控件自动适配。
关注我的帖子的版友们,可能都知道,前几天写过一个自动生成数据表窗体的示例,里面已经提到了实现思路。这里就不再重复了。这里仅提一下不同之处。我们知道,通过点击控件来显示数据,就必然涉及到传递参数,修改数据源的操作。在思路上,可以考虑在打开窗体时使用acDialog模式,也可以考虑直接用参数来修改数据源。经测试,用acDialog方式有些问题,没法实现。所以这里就直接通过修改查询数据源,再加载查询到源对象(SourceObject)上,从而达到自动更新目标窗体的目的。
实现的方式有2种。一种是打开新窗体,另一种则是嵌套子窗体。虽然楼主原先的想法是打开新窗体来查看,但是个人觉得,用嵌套子窗体或许更方便查看。所以两种方式都做了。具体见附件中“生产_欠单_打开新窗体”和“生产_欠单_嵌套子窗体”两个窗体。不管新窗体还是子窗体,这里用的都是“生产_订单_情况”,别问为什么(偷懒呗)。
还是老规矩,先贴一段代码吧:
- Private Sub 产品料号_Click()
- Dim strNum As String
- Dim strSQL As String
- Dim qry As QueryDef
- Set qry = CurrentDb.QueryDefs("临时表")
- qry.SQL = "TRANSFORM Sum(生产数量) AS 生产数量总计 SELECT 模号, 工单编号, 产品料号, Sum(生产数量) AS 总计 FROM 生产_数据统计表" _
- & " WHERE 产品料号='" & Me.产品料号 & "' GROUP BY 模号, 工单编号, 产品料号 PIVOT 生产日期"
- Me.Parent!生产_订单_情况.Form!生产_工单.SourceObject = "查询.临时表"
- Me.Parent!生产_订单_情况.Requery
- End Sub
复制代码 代码很简单,大体是利用QueryDef对象对查询进行设置SQL语句,然后把查询对象绑定到嵌套子窗体的child控件上,再刷新子窗体。这里就不一一解说了。需要注意的是,如何引用兄弟窗体的写法:先用Me,再引用Parent到父级(即主窗体)上,再引用兄弟窗体,后面的控件写法则与一般写法无异了。即:Me.Parent!兄弟窗体.Form!兄弟窗体控件.控件属性
喜欢的话,不放下载下来体验下?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|