我们需要根据筛选出来的数据进行导出打印,Access自带的宏 outputto 远远不能满足要求。
此时需要vba来控制导出了。更有甚者,我们需要根据需要导出我们的需求字段。 导出一个表或者查询中的部分数据到EXCEL表中,其方法也有很多。
下面介绍的一个是通用函数,可在任意窗体调用使用。 Private Function GetSql(ByVal OpA As String, listctrl As ListBox) As String '功能:返回SQL字符串 '参数:OpA -- Me.OpenArgs (写为:me.name & "子窗体控件名称") ' listctrl--存放所选字段的ListBox控件 Dim frm As Form Dim A Dim ssql As String, tb As String, wh As String Dim i As Long If listctrl.ListCount > 0 Then A = Split(OpA, ";") Set frm = Forms(A(0)).Controls(A(1)).Form tb = Replace(frm.RecordSource, ";", "") 'From子句部分 wh = "True " If Nz(frm.Filter, "") <> "" Then wh = wh & " and " & frm.Filter 'Where子句部分 End If ssql = "select " For i = 0 To listctrl.ListCount - 1 ssql = ssql & listctrl.Column(0, i) & "," '拼接Select子句部分 Next ssql = Left(ssql, Len(ssql) - 1) 'select子句部分 ssql = ssql & " from (" & tb & ") where " & wh Else ssql = "" End If GetSql = ssql End Function