Office中国论坛/Access中国论坛

标题: 如何将窗体中的当前记录用代码导出到EXCEL [打印本页]

作者: tzt0625    时间: 2009-2-19 09:46
标题: 如何将窗体中的当前记录用代码导出到EXCEL
由于我的窗体 是单个窗体的形式,我想将窗体的当前记录导出到excel里面,用代码如何表示?
作者: Henry D. Sy    时间: 2009-2-19 10:20
http://www.accessbbs.cn/bbs/thread-9356-1-1.html
作者: tzt0625    时间: 2009-2-19 10:44
版主 你看我这代码有没有问题啊?
Private Sub Command70_Click()
Dim db As DAO.Database
Dim zf As DAO.Recordset
Dim oExcel As Object
Dim oBook As Object
Dim oSheet As Object
Dim I As Integer
Set db = CurrentDb
Set zf = db.OpenRecordset("select * from 人员档案 where 员工编号='" & Me.员工编号 & "'")
Set oExcel = CreateObject("Excel.Application")
Set oBook = oExcel.Workbooks.Add()
Set oSheet = oBook.Worksheets.Add(, , 2)

   For I = 0 To Me.Form.Recordset.Fields.Count - 1
      oBook.Worksheets(1).Cells(1, I + 1).Value = Me.Form.Recordset.Fields(I).Name
   Next
      oBook.Worksheets(1).Range("A2").CopyFromRecordset zf

我就是把当前记录用赋予zf 然后企图复制其到那边,可是不知道为何老出错?
作者: asklove    时间: 2009-2-19 11:55
如果想把子窗体中全部内容导入excel
我使用的是一个偷懒的方法:随便建个查询(如:导入Excel),SQL语句改为你子窗体的记录源
DoCmd.OutputTo acOutputQuery, "导入Excel", acFormatXLS, "导入Excel.xls", True
就行了
如果碰到SQL语句太多,有时候会出错时,你改用下面方法
引用DAO3.0
Dim def As dao.QueryDef
Dim SQLstr As String
Set def = CurrentDb.QueryDefs("导入Excel")
SQLstr = Form_查询全部信息子窗体.RecordSource
def.SQL = SQLstr
DoCmd.OutputTo acOutputQuery, "导入Excel", acFormatXLS, "导入Excel.xls", True
Set def = Nothing
作者: tzt0625    时间: 2009-2-19 13:29
DAO 3.0?我引用的是DAO 3.6不知道是否可以 ?
由于我随后要导入4个子窗体的内容是和主窗体导出放在一个工作薄里面的,不知道这个语句是否合适,我上传个附件给您看一下吧,谢谢您
作者: tzt0625    时间: 2009-2-19 13:35
附件如下,我需要把主窗体当前记录的信息和四个子窗体的记录全部输出到一个工作薄里,主窗体的记录搞不定,谢谢![attach]35389[/attach]
作者: wu8313    时间: 2009-2-19 19:59
本帖最后由 wu8313 于 2009-2-19 20:00 编辑

没有仔细看你的代码。有一个问题反映一下,当 "d:\查询结果.xls" 处在打开状态的话,使用导出按钮的话,将弹出 "错误号为1004 错误说明:不能访问“查询结果.xls”。"

不过,你的代码,已经可以完成导出了,没有什么问题。你的意思是要 放在一个工作表中,对吧?
作者: tzt0625    时间: 2009-2-19 23:19
对的对的!大哥对的!!想一个工作表是主窗体的当前记录的数据,然后其余四个表是四个子窗体的数据
作者: wu8313    时间: 2009-2-20 10:33
对的对的!大哥对的!!想一个工作表是主窗体的当前记录的数据,然后其余四个表是四个子窗体的数据
tzt0625 发表于 2009-2-19 23:19


你的代码不是已经实现了吗?!
作者: Vista    时间: 2009-2-20 10:39
我也學習以下
作者: tzt0625    时间: 2009-2-20 11:28
你的代码不是已经实现了吗?!
wu8313 发表于 2009-2-20 10:33


我这里没有实现啊,说是类不支持自动化什么的....
作者: chaojianan    时间: 2009-2-20 11:54
下载了学习,似乎无问题。
作者: tzt0625    时间: 2009-2-20 12:01
不是吧 为啥我的提升 类不支持自动化???
作者: tzt0625    时间: 2009-2-22 18:51
谁帮忙解决一下啊?!!!大哥们~
作者: tzt0625    时间: 2009-2-23 10:16
顶起来~~谁帮看看是怎么回事啊,别人有人说可以用,我自己却不行
作者: jackysu78    时间: 2009-3-30 11:35
当前是可以导出的
作者: 阿六爱狗    时间: 2009-3-30 14:33
学学学
作者: muchunyu    时间: 2009-4-7 21:26
学习了
作者: huangyz_xy    时间: 2009-4-7 23:21
学到了,谢谢!
作者: huangyz_xy    时间: 2009-4-8 18:37
DoCmd.OutputTo acOutputQuery, "导入Excel", acFormatXLS, "导入Excel.xls", True,,用这个语句导出的是95格式的,用什么方法可以变成导出的为2003格式的吗?每次导出了都要转换一次,麻烦




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