如题,本礼拜五前要完成此程序,手上资料缺乏,特此在线求助。
数据库内导出excel表,要求形成一查询及修正程序,将数据与手工帐本对照,我只会对数据库进行操作如access,但是要求我在由excel入手,最后在新列中标记错误,并返回修正后的excel表,不能返回access文件。
希望大家教教我,能提供源代码更是感谢万分。
分不多,还请包涵……

解决方案 »

  1.   

    顶,我也想知道excel怎么转成ACCESS
      

  2.   

    是否?
    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
    不能用问我