Office中国论坛/Access中国论坛

标题: 如何将子窗体的数据导出 [打印本页]

作者: wang1999    时间: 2004-3-30 00:54
标题: 如何将子窗体的数据导出
窗体里面包含一个子窗体,子窗体的RecordSource属性为动态的SQL查询语句,由用户控查询,我现在不知道如何将其子窗体的执行查询后的数据导出到EXCEL
作者: wang1999    时间: 2004-3-30 22:18
搞半天还没搞定,烦!
没办法 顶
请大家帮帮忙!
作者: 我同意    时间: 2004-3-31 05:01
这是我收集到的一个查询的例子,我记得里面应该提到子窗数据输出的.[attach]4088[/attach]
作者: wang1999    时间: 2004-3-31 06:08
谢谢!
这个例子我看过,它里面子窗体的数据源是直接绑订到一个查询,而查询条件引用当前窗体控件值,然后利用宏,代码是DoCmd.OutputTo acOutputQuery…………导出.
而我的子窗体的数据源直接用代码写的SQL语句,没有用到查询.
所以不能,
不过我先试试


作者: wang1999    时间: 2004-3-31 06:33
还是没搞定,烦
大家帮帮忙.
作者: wang1999    时间: 2004-4-1 03:52
老话一句——自己动手丰衣足食
琢磨两天还是自己搞定,代码如下,大家可参考:
        Dim xls As New Excel.Application, wkb As Excel.Workbook, wks As Excel.Worksheet
        Dim rst As New ADODB.Recordset
        Dim intRow As Integer, strSQL As String
        Set wkb = xls.Workbooks.Add
        Set wks = xls.ActiveSheet
        strSQL = Me!frmChildForm.Form.RecordSource
        rst.Open strSQL, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
        wks.Cells(1, 1).Value = rst.Fields(0).Name
        wks.Cells(1, 2).Value = rst.Fields(1).Name
        wks.Cells(1, 3).Value = rst.Fields(2).Name
        intRow = 2
        Debug.Print rst.RecordCount
        Do Until rst.EOF
            wks.Cells(intRow, 1).Value = rst.Fields(0).Value
            wks.Cells(intRow, 2).Value = rst.Fields(1).Value
            wks.Cells(intRow, 3).Value = rst.Fields(2).Value
            rst.MoveNext
            intRow = intRow + 1
        Loop
        xls.Visible = True
        rst.Close
        Set rst = Nothing

最烦的是微软已将其DAO淘汰,在XP版中FORM返回的还是DAO记录集,不是ADODB记录集,所以代码了多两句
不知道在2003版中怎样(还没用过2003)
作者: caibbs    时间: 2004-4-10 00:27
赢家永远不会半途而废,
半途而废者永远不会赢!




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