|
我猜你要的结果应该是这样吧(但愿没有猜错)。
理论上没什么难的,应该是传递参数时有误。打开带条件的窗体,写法是正确的,但你这个“生产_订单_情况”窗体,并不是一个真正意义上的窗体。我的意思是说,它在里面嵌套了一个child控件,通过child控件绑定查询数据源来实现的。
打个比方,你本来是要找个妹纸谈恋爱的,结果你却把鲜花送给了媒婆,你以为媒婆会把鲜花送给女神,结果她没有。
那么,能不能让“媒婆”把鲜花转交给“女神”呢。理论上是可以,但实际操作并不简单。因为child是控件,而不是窗体,因此并不方便将where部分传入。openform肯定是不行的了,因为它不是一个form。我试过在“媒婆”【生产_订单_情况】上使用加载事件,把where传递过去,但使用filter时无效。
换句话说,还是需要重写查询数据源的SQL。既然如此,又何必再传递参数呢?直接修改数据源,打开窗体就好了呀。于是便有了这个附件。
理论上,应该还有一个相对简单的法子,不过就不能使用打开窗体了,而是把这两个窗体放在同一个主窗体下,通过点击“生产_欠单”的物料号或者订单号来显示对应的“生产_订单_情况”。这个时候可以考虑使用ADO,current事件。在子窗体上是可以通过。即点击A子窗体的ID,显示B子窗体对应ID的其他信息。当然,child依然是一个绕不过的问题,能否实现的关键还得看它。
最后附上一段实现的代码,详细查看附件:
- 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 生产日期"
- qry.Close
- DoCmd.OpenForm "生产_订单_情况"
- End Sub
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|