工程中需要加入对MicroSoft Excel9.0 Object Library(excel9.olb)库的引用。
下面的函数我在SQL2K+WIN2K+OFFICE2K中进行了测试,测试表中含带两位小数的数值型字段。
调用格式:
if ExportTOExcel("TestTable","TestExcel")=False then
msgbox "Error"
end if
' 将strTName表中的数据全部导入到strFName文件中
' 入参:strTName-所要导出的数据表名称
' strFName-接收数据到EXCEL文件名称
' (如果该文件已经存在,那么无条件的删除掉该文件后重新创建新的文件)
' (strFName为主文件名,扩展文件名以及路径均在本函数中给出)
' 返回:TRUE-导出成功,FALSE-导出不成功
'------------------------------------------------
Public Function ExportTOExcel(strTName As String, strFName As String) As Boolean
On Error GoTo ErrLiner
Dim strSql As String ' SQL语句临时变量
Dim strTemp As String
Dim objXLS As Object ' OLE自动化对象
Dim rsTemp As ADODB.Recordset ' 所要导出数据的容器记录集
Dim intHeadCnt As Integer ' 记录集的字段数
ExportTOExcel = False
' 检测文件是否存在,如果已经存在,那么KILL掉
strFName = "C:\" & strFName & ".xls"
If Dir(strFName) <> "" Then Kill strFName
' 构造要导出数据的记录集[这里没有判断结果集为空的情况]
strSql = "Select * From " & strTName
Set rsTemp = HisConn.Execute(strSql, 2)
' 创建EXCEL对象
Set objXLS = CreateObject("Excel.Sheet.8")