MIS系統(tǒng)在月末由于業(yè)務(wù)的需要總要匯總當(dāng)月業(yè)務(wù)情況,并且導(dǎo)出報(bào)盤,我把我的程序中的這一部分功能單拿出來,做成一個小的程序,僅供參考。
一般是在ACCESS或是SQLSERVER中查尋,或是匯總,然后生成一個‘記錄集’可以顯示在GRID里,也可以將這個記錄集導(dǎo)出到磁盤中。
下面可以導(dǎo)出Xls,DBF,DB,MDB(表),這些功能是由ISAM數(shù)據(jù)庫接口實(shí)現(xiàn),為了導(dǎo)出各種版本的文件,我在MS網(wǎng)站下載了最新的JET4和MDAC6。前者到用于桌面數(shù)據(jù)庫如ACCESS,F(xiàn)OXPRO的組件,后者是實(shí)現(xiàn)新版本ADO組件。
這些是標(biāo)準(zhǔn)的SQL導(dǎo)出語句:
select * into [Excel 8.0;database=導(dǎo)出目錄].導(dǎo)出表名 from 表
select * into [FoxPro 2.6;database=導(dǎo)出目錄].導(dǎo)出表名 from 表
select * into [FoxPro 2.5;database=同上].導(dǎo)出表名 from 表
select * into [dBase III;database=同上].導(dǎo)出表名 from 表
select * into [Paradox 4.X;database=同上].導(dǎo)出表名 from 表
select * into [;database=C:\temp\xxx.mdb].導(dǎo)出表名 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
´******************處理選擇的各種表的導(dǎo)出
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("請給導(dǎo)出到MDB文件的表確定表名")
.FilterIndex = 2
.ShowSave
Export_Str = "select * into [;database=" & .FileName & "]." & mdbTable & " from Customers"
.DefaultExt = "*.MDB"
ElseIf myOption(4).Value Then
.FilterIndex = 3
.ShowSave
一般是在ACCESS或是SQLSERVER中查尋,或是匯總,然后生成一個‘記錄集’可以顯示在GRID里,也可以將這個記錄集導(dǎo)出到磁盤中。
下面可以導(dǎo)出Xls,DBF,DB,MDB(表),這些功能是由ISAM數(shù)據(jù)庫接口實(shí)現(xiàn),為了導(dǎo)出各種版本的文件,我在MS網(wǎng)站下載了最新的JET4和MDAC6。前者到用于桌面數(shù)據(jù)庫如ACCESS,F(xiàn)OXPRO的組件,后者是實(shí)現(xiàn)新版本ADO組件。
這些是標(biāo)準(zhǔn)的SQL導(dǎo)出語句:
select * into [Excel 8.0;database=導(dǎo)出目錄].導(dǎo)出表名 from 表
select * into [FoxPro 2.6;database=導(dǎo)出目錄].導(dǎo)出表名 from 表
select * into [FoxPro 2.5;database=同上].導(dǎo)出表名 from 表
select * into [dBase III;database=同上].導(dǎo)出表名 from 表
select * into [Paradox 4.X;database=同上].導(dǎo)出表名 from 表
select * into [;database=C:\temp\xxx.mdb].導(dǎo)出表名 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
´******************處理選擇的各種表的導(dǎo)出
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("請給導(dǎo)出到MDB文件的表確定表名")
.FilterIndex = 2
.ShowSave
Export_Str = "select * into [;database=" & .FileName & "]." & mdbTable & " from Customers"
.DefaultExt = "*.MDB"
ElseIf myOption(4).Value Then
.FilterIndex = 3
.ShowSave