如题,本礼拜五前要完成此程序,手上资料缺乏,特此在线求助。
数据库内导出excel表,要求形成一查询及修正程序,将数据与手工帐本对照,我只会对数据库进行操作如access,但是要求我在由excel入手,最后在新列中标记错误,并返回修正后的excel表,不能返回access文件。
希望大家教教我,能提供源代码更是感谢万分。
分不多,还请包涵……
数据库内导出excel表,要求形成一查询及修正程序,将数据与手工帐本对照,我只会对数据库进行操作如access,但是要求我在由excel入手,最后在新列中标记错误,并返回修正后的excel表,不能返回access文件。
希望大家教教我,能提供源代码更是感谢万分。
分不多,还请包涵……
Public Function ExporToExcel(strOpen As String)
'*********************************************************
'* 名称:ExporToExcel
'* 功能:导出数据到EXCEL
'* 用法:ExporToExcel(sql查询字符串)
'*********************************************************
Dim Rs_Data As New ADODB.Recordset
Dim Irowcount As Integer
Dim Icolcount As Integer
Dim xlApp As New Excel.Application
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 = Cn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.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")
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"))
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 = True
'标题字体加粗
.Range(.Cells(1, 1), .Cells(Irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous
'设表格边框样式
End With
With xlSheet.PageSetup
.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 = NothingEnd Function或者:
'ACCESS导出到EXCEL模块声明__sheet(i)
'调用ExportAccessToExcelSheet "sSheetName", "sExcelPath", "AccessTable", "sAccessDBPath"
'i=i+1
'还要引用microsoft Excel 11.0 Object Library和microsoft ActiveX Data Objects 2.0 Library
'每次只能保证更新第一张SHEET,而且不能导入ACCESS中TABLE的FIELDNAME
'且ACCESS和EXCEL文件必须实现存在。
Public Sub ExportAccessToExcelSheet(sSheetName As String, sExcelPath As String, sAccessTable As String, sAccessDBPath As String)
Dim Conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ExcelApp As New Excel.Application
Dim WorkBookObj As Workbook
Dim SheetObj As Worksheet
'数据库路径为程序路径
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & sAccessDBPath
Conn.Open
rs.Open "Select * From " & sAccessTable, Conn, adOpenKeyset, adLockOptimistic, adCmdText
'==========================================================================
'Excel路径为程序路径
''''''''''exl.Application.IgnoreRemoteRequests = True
Set WorkBookObj = ExcelApp.Workbooks.Open(App.Path & sExcelPath)
Set SheetObj = WorkBookObj.Worksheets(i)
'========================================
SheetObj.Range("A1").CopyFromRecordset rs
SheetObj.Name = sSheetName
Set SheetObj = Nothing
WorkBookObj.Save
WorkBookObj.Close
Set WorkBookObj = Nothing
ExcelApp.Quit
Set ExcelApp = Nothing
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
'''''''''exl.Application.IgnoreRemoteRequests = False
End Sub
不能用问我