设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2182|回复: 4
打印 上一主题 下一主题

[帮助] 关于ACCESS数据导出到EXCEL

[复制链接]
1#
发表于 2012-1-13 23:49:58 | 显示全部楼层
给你一个导出查询到指定的excel(具体到工作表,开始行列)
excel请放在与本库同目录下
  1. '---------------------------------------------------------------------------------------
  2. ' Procedure : QueryToExcel
  3. ' DateTime  : 2008-12-2 00:02
  4. ' Author    : Henry D. Sy
  5. ' Purpose   :
  6. ' 参数      ;strQueryName  查询名
  7. '            xlsName       Excel 文件名
  8. '            strShtName    工作表名
  9. '            Hval;Lval     分别为要导入的开始行和列
  10. '---------------------------------------------------------------------------------------
  11. '
  12. Sub QueryToExcel(ByVal strQueryName As String, ByVal xlsName As String, ByVal _
  13.                 strShtName As String, ByVal Hval As Integer, ByVal Lval As Integer)
  14. ' Send the Query results to Excel
  15. ' for further analysis
  16.     Dim rs As ADODB.Recordset
  17.     Dim objXL As Excel.Application
  18.     Dim objWs As Excel.Workbook
  19.     Dim fld As ADODB.Field
  20.     Dim intCol As Integer
  21.     Dim intRow As Integer

  22.     Set rs = New ADODB.Recordset
  23.     ' Get the desired data into a recordset
  24.     rs.Open strQueryName, CurrentProject.Connection
  25.     ' Launch Excel
  26.     Set objXL = New Excel.Application
  27.     ' Open a  worksheet
  28.     Set objWs = objXL.Workbooks.Open(CurrentProject.Path & "" & xlsName & _
  29.                                      ".xls")
  30.     objWs.Worksheets(strShtName).Activate
  31.     ' Copy the data
  32.     ' First the field names 第一行是ACCESS中的列表名

  33.     For intCol = 0 To rs.Fields.Count - 1  '是获取表中的列数
  34.         Set fld = rs.Fields(intCol)
  35.         objWs.Worksheets(strShtName).Cells(Hval, intCol + Lval) = fld.Name  'Excel中(1,1)开始输入列名
  36.     Next intCol
  37.     ' Now the actual data 现在开始复制数据
  38.     intRow = Hval + 1      '你可以修改intRow从第几行开始输入数据,本例中是从第2行开始复制数据
  39.     Do Until rs.EOF       '你可以修改intCol + 1从第几列开始输入数据,本例中是从第2行第1列开始复制数据
  40.         For intCol = 0 To rs.Fields.Count - 1
  41.             objWs.Worksheets(strShtName).Cells(intRow, intCol + Lval) = _
  42.             rs.Fields(intCol).Value
  43.         Next intCol
  44.         rs.MoveNext
  45.         intRow = intRow + 1
  46.     Loop
  47.     ' Make the worksheet visible
  48.     objXL.Visible = True    '打开Excel表查看数据
  49.     rs.Close
  50.     Set rs = Nothing

  51. End Sub
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-17 23:10 , Processed in 0.073602 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表