高分求关于ACCESS导出EXCEL的问题!!急!! ACCESS导出问题

作者&投稿:成背 (若有异议请与网页底部的电邮联系)
本示例用一个按钮事件加一个函数,你照之修改一下就应该符合你的要求了,如果你觉得不太好观看,请COPY到ACCESS VBA窗口中查看,比较直观.( 将声明跟函数复制到模块中

第一个先放出API函数声明跟函数

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long

Rem 导出电子表格的函数
Public Function ExportToExcel(stropen As String)
'*********************************************************
'* 名称:exportToExcel
'* 功能:导出数据到EXCEL
'* 用法:exportToExcel(sql查询字符串)
'*********************************************************
'Dim Rs_Data As New ADODB.Recordset '定义记录集对象,用完已释放?原代码没释放,我修改之
Dim RS_Data As New ADODB.Recordset
Dim irowcount As Integer '行数
Dim Icolcount As Integer '列数
'Dim cnn As New ADODB.Connection

Dim xlApp As New Excel.Application 'excel对象
Dim xlBook As Excel.Workbook '工作簿对象
Dim xlSheet As Excel.Worksheet '工作表对象
Dim xlQuery As Excel.QueryTable '用完已释放?原代码没释放,我修改之

With RS_Data '记录集对象
If .State = adStateOpen Then
.Close '如果记录集处于打开状态,则先关闭它
End If
.ActiveConnection = CurrentProject.Connection '连接
.CursorLocation = adUseClient '本地游标
.CursorType = adOpenStatic
.LockType = adLockPessimistic
.Source = stropen '通过函数传过来的字符串
.Open
End With

With RS_Data
If .RecordCount < 1 Then
MsgBox ("没有记录!")
Exit Function
End If
'记录总数
irowcount = .RecordCount
'字段总数
Icolcount = .Fields.Count
End With

Set xlApp = CreateObject("Excel.Application") '创建excel对象
Set xlBook = Nothing '工作簿
Set xlSheet = Nothing '工作表
Set xlBook = xlApp.Workbooks().Add '添加一个工作簿
Set xlSheet = xlBook.Worksheets("sheet1") '工作表
'xlApp.Visible = True '意思不明白,加上没影响!

'添加查询语句,导入EXCEL数据
Set xlQuery = xlSheet.QueryTables.Add(RS_Data, xlSheet.Range("a1")) 'A1是确定起始行的位置

With xlQuery
.FieldNames = True '不知何用[是否是指字段名]
.RowNumbers = False '设置第一列是否显示序号
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.savedata = True
.AdjustColumnWidth = True '使用合适的列宽
.RefreshPeriod = 0
.PreserveColumnInfo = True
End With

xlQuery.FieldNames = True '设置是否在第一行处显示字段名
xlQuery.Refresh

With xlSheet
.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Name = "黑体"
'设标题为黑体字
.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Bold = False '不加粗
'标题字体加粗
.Range(.Cells(1, 1), .Cells(irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous '如果第一行不显示字段,则不用加一
'设表格边框样式
End With

With xlSheet.PageSetup
Rem 以下页面设置因其个性化太强,故不用
'.LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:" ' & Gsmc
'.CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) & "&""楷体_GB2312,常规""&10日 期:"
'.RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
'.LeftFooter = "&""楷体_GB2312,常规""&10制表人:"
'.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:"
'.RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
End With

xlApp.Application.Visible = True
Set xlApp = Nothing '"交还控制给Excel
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlQuery = Nothing
RS_Data.Close
Set RS_Data = Nothing
End Function

第二个按钮事件,会调用到上面的函数

Private Sub CmdExportExcel13_Click()
'Debug.Print strSource
Dim strSource As String
strSource = Me.RecordSource
ExportToExcel strSource

'更改Excel中的标题
Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlSheet As Excel.Worksheet '定义工作表类

'判断Excel是已经打开
Dim hWnd As Long
hWnd = FindWindow("XLMAIN", 0)
'MsgBox IIf(hWnd <> 0, "Excel is running", "Excel isn't running")
If hWnd = 0 Then
Set xlApp = New Excel.Application
End If

Set xlApp = GetObject(, "Excel.Application") '获取Excel应用程序
If Err.Number = 429 Then '出现429错误时延时
DoEvents '转让控制权,以便让操作系统处理其它的事件
DoEvents
Set xlApp = GetObject(, "Excel.Application")
End If
Set xlBook = xlApp.ActiveWorkbook '设置活动工作簿
Set xlSheet = xlApp.ActiveSheet '设置活动工作表

'改写标题
'如果SQL中语句中的字段名足以表达字面意思就可不用下面的了.
xlSheet.Cells(1, 1) = "活动编号"
xlSheet.Cells(1, 2) = "日 期"
xlSheet.Cells(1, 3) = "类 型"
xlSheet.Cells(1, 4) = "活动名称"
'ActiveSheet.Range("E:I").Select
ActiveSheet.Range("E:I").ClearContents

'xlSheet.Cells(Me.TxtCount + 2, 7) = Me.TxtTotal

'xlBook.Save '保存

Set xlSheet = Nothing
Set xlApp = Nothing
Set xlBook = Nothing

End Sub

从access导出的excel文件出现备份的问题~

在另存为对话框最上边的工具里有“保存选项”页“生成备份文件”前面的勾去掉。

我的是Access2007的操作:
右键点击表明->导出->文本文件
在弹出的选择数据导出操作的目标对话框中
文件名:D:\学生文件夹\学生表.txt
选择指定导出选项:导出数据包含格式和布局
点击确定就好了
如果还没有分数,你确定你导出的是学生表吗?

asp代码实现access数据导出到excel文件
答:response.writescriptalert(操作出错,下面是产生错误的可能原因:nn库里暂时没有数据,所以不能导出EXCEL文件!);location.href=referer;/script response.end else DimFs,Exc DimExcelstring,ExcelHead,Excelstr,Excelstr2 DimS...

access数据库中,数据以rtf格式存储(图文混合的数据),在vb中如何导出为e...
答:Access转换成word文档的方法如下:1、在MicrosoftAccess中,打开所需数据库,然后打开数据库对象:表、查询、窗体或报表。2、选定所需输出数据的行和列。3、单击“文件”菜单中的“另存为/导出”命令。4、选择“另存为一个...

请问一下access中窗体导出excel怎么实现,谢谢啊
答:在access窗体中实现导出excel很简单呀 右键点击你需要导出的数据表,然后选择“导出...”功能,然后文件类型选成“*.xls”就行了 你可以把需要导出的数据的SQL语句设计成一个查询,然后再导出 ...

ACCESS报表如何保留格式导出EXCEL
答:收到先打开Access,找到你要导出的表或者查询:注意,导出的可以是表、查询、报表,这里的要求是选择报表,完成1-3步骤以后,界面如下:依次选择导出文件位置、类型,单击确认,即可完成ACCESS报表保留格式导出EXCEL ...

高分求关于ACCESS导出EXCEL的问题!!急!!
答:本示例用一个按钮事件加一个函数,你照之修改一下就应该符合你的要求了,如果你觉得不太好观看,请COPY到ACCESS VBA窗口中查看,比较直观.( 将声明跟函数复制到模块中 第一个先放出API函数声明跟函数 Declare Function Find...

access数据库有12万条数据需要导出excel文件,怎么导呀,求教~ EXCEL表 ...
答:要用03的话就分两次,备份两次ACCESS,第一个删除前6万条,第二个删除后6万条,然后再导出就行了

Access中的数据导出到Excel中,其布局能否根据自己的需要设置?
答:导出时做不到,但是你这种要求只需要在正常导出到excel之后,在excel中选中并复制一下数据,然后在excel其它地方右键-选择性粘贴,选中转置就可以了。

Access里如何按照某字段的类型一次性全字段批量导出Excel?
答:可以先创建一个查询,另目标字段进行排序,然后再将查询导出Excel即可!

access查询结果导出excel ,但是数据太大300多万个记录,装不下。怎么...
答:所以导出记录到同一个工作表是不可能的。只能分段导出,例如sheet1是2010年的记录,sheet2是2011年的记录,导多几个工作表就可以了。但是,其实楼上说得对,excel在处理大量数据方面并不优秀,建议还是在access中操作。

怎么把数据量很大的ACCESS数据导出到EXCEL
答:首先excel2003中最多65536行,其次如果要做就要分表来导出,比较麻烦,建议升级到excel2007,然后采用access的外部数据——》导出excel功能导出到excel2007。就可以了