北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
原帖在这里:http://www.accessoft.com/bbs/showtopic.asp?ID=9676&BoardID=9
发帖之后一直没得到满意的答复,遂自己翻论坛、拆实例,完全依葫芦画瓢解决了问题,虽说有些笨,但自己用着方便比啥都强,难掩兴奋的心情,把解决的途径贴出来和大家分享,如果能帮我完善则更好。
实现的思路:原来打算从一个查询结果的子窗体分别提取记录来形成不同的报表,现在用了个笨招,干脆在查询按钮的代码中设置条件,一次控制三个不同的子窗体,再用预览报表的按钮代码分别把三个子窗体的结果赋值给相应的报表并实现打印输出。一个按钮查询,一个按钮打印,齐活了。
查询按钮的代码:
Private Sub cmd工资查询_Click()
On Error GoTo Err_cmd工资查询_Click
Dim strWhere As String
strWhere = ""
If Not IsNull(Me.xueli) Then
strWhere = strWhere & "([学历] like '" & Me.xueli & "') AND "
End If
If Not IsNull(Me.cjgzsj) Then
strWhere = strWhere & "([参加工作时间] like '" & Me.cjgzsj & "') AND "
End If
If Not IsNull(Me.zcsj) Then
strWhere = strWhere & "([转出时间] = " & Me.cjgzsj & ") AND "
End If
If Len(strWhere) > 0 Then
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
Debug.Print strWhere
Me.工资查询子窗体.Form.Filter = strWhere
Me.工资查询子窗体.Form.FilterOn = True
strWhere = ""
If Not IsNull(Me.xueli) Then
strWhere = strWhere & "([学历] like '" & Me.xueli & "') AND "
End If
If Not IsNull(Me.cjgzsj) Then
strWhere = strWhere & "([参加工作时间] like '" & Me.cjgzsj & "') AND "
End If
If Not IsNull(Me.zcsj) Then
strWhere = strWhere & "([转出时间] = " & Me.cjgzsj & "+1) AND "
End If
If Len(strWhere) > 0 Then
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
Debug.Print strWhere
Me.转正定级子窗体.Form.Filter = strWhere
Me.转正定级子窗体.Form.FilterOn = True
strWhere = ""
If Not IsNull(Me.xueli) Then
strWhere = strWhere & "([学历] like '" & Me.xueli & "') AND "
End If
If Not IsNull(Me.cjgzsj) Then
strWhere = strWhere & "([参加工作时间] like '" & Me.cjgzsj & "') AND "
End If
If Not IsNull(Me.zcsj) Then
strWhere = strWhere & "([转出时间]> " & Me.cjgzsj & "+1 and [转出时间]<=" & Me.zcsj & ") AND "
End If
If Len(strWhere) > 0 Then
strWhere = Left(strWhere, Len(strWhere) - 5)
End If
Debug.Print strWhere
Me.晋升子窗体.Form.Filter = strWhere
Me.晋升子窗体.Form.FilterOn = True
Exit_cmd工资查询_Click:
Exit Sub
Err_cmd工资查询_Click:
MsgBox Err.Description
Resume Exit_cmd工资查询_Click
End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
打印报表按钮的代码:
Private Sub 报表_Click()
On Error GoTo Err_报表_Click
Dim stDocName, strWhere As String
stDocName = "试用期"
strWhere = Me.工资查询子窗体.Form.Filter
DoCmd.OpenReport stDocName, acViewNormal, , strWhere
stDocName = "转正定级"
strWhere = Me.转正定级子窗体.Form.Filter
DoCmd.OpenReport stDocName, acViewNormal, , strWhere
stDocName = "晋升工资"
strWhere = Me.晋升子窗体.Form.Filter
DoCmd.OpenReport stDocName, acViewNormal, , strWhere
Exit_报表_Click:
Exit Sub
Err_报表_Click:
MsgBox Err.Description
Resume Exit_报表_Click
End Sub