在VB6中導出EXCEL,F(xiàn)OXPRO,PRODOX格式的表

字號:

MIS系統(tǒng)在月末由于業(yè)務的需要總要匯總當月業(yè)務情況,并且導出報盤,我把我的程序中的這一部分功能單拿出來,做成一個小的程序,僅供參考。
    一般是在ACCESS或是SQLSERVER中查尋,或是匯總,然后生成一個‘記錄集’可以顯示在GRID里,也可以將這個記錄集導出到磁盤中。
    下面可以導出Xls,DBF,DB,MDB(表),這些功能是由ISAM數(shù)據(jù)庫接口實現(xiàn),為了導出各種版本的文件,我在MS網(wǎng)站下載了最新的JET4和MDAC6。前者到用于桌面數(shù)據(jù)庫如ACCESS,F(xiàn)OXPRO的組件,后者是實現(xiàn)新版本ADO組件。
    這些是標準的SQL導出語句:
    select * into [Excel 8.0;database=導出目錄].導出表名 from 表
    select * into [FoxPro 2.6;database=導出目錄].導出表名 from 表
    select * into [FoxPro 2.5;database=同上].導出表名 from 表
    select * into [dBase III;database=同上].導出表名 from 表
    select * into [Paradox 4.X;database=同上].導出表名 from 表
    select * into [;database=C:\temp\xxx.mdb].導出表名 from 表
    請先引用ADODB類庫。
    Dim Export_Str, mdbTable As String
    Dim rsExport As New ADODB.Recordset
    Dim conn As New ADODB.Connection
    Private Sub Close_cmd_Click()
    Unload Me
    End Sub
    Private Sub EXport_cmd_Click()
    Dim myPath, myStr As String, myPos As Integer
    ´******************處理選擇的各種表的導出
    With Dialog1
    If myOption(2).Value Then
    .FilterIndex = 1
    .ShowSave
    myStr = StrReverse(.FileName) ´串取反
    myPos = InStr(myStr, "\") ´在反字符串中,找從左開始第一個\的位置
    On Error GoTo myError ´防FILENAME為空,MID出錯
    myPath = StrReverse(Mid(myStr, myPos)) ´取目錄部分,并還原.
    myStr = StrReverse(Left(myStr, myPos - 1)) ´取文件名
    Export_Str = "select * into [dBase III;database=" & myPath & "]." & myStr & " from Customers"
    .DefaultExt = "*.DBF"
    ElseIf myOption(3).Value Then
    mdbTable = InputBox("請給導出到MDB文件的表確定表名")
    .FilterIndex = 2
    .ShowSave
    Export_Str = "select * into [;database=" & .FileName & "]." & mdbTable & " from Customers"
    .DefaultExt = "*.MDB"
    ElseIf myOption(4).Value Then
    .FilterIndex = 3
    .ShowSave