请看看以下导出文本文件的模块函数,我应该怎么在按钮点击事件中实现调用。Option ExplicitPublic Function TabintoTxt(objConn As Object, TableName As String, Optional TextFileName As String)
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
Dim i As Long
Dim WritStr As String
Dim Fid As Long
Dim lngCount As Long ' 计数。 If TextFileName = "" Then TextFileName = App.Path & "\" & TableName & ".txt"
If objConn.State = 0 Then objConn.Open
rs.Open "select * from " + TableName, objConn Fid = FreeFile
rs.MoveFirst
Open TextFileName For Output As #Fid
WritStr = ""
For i = 0 To rs.Fields.Count - 1
WritStr = WritStr & "" & rs.Fields(i).Name & ","
Next
Print #Fid, WritStr
While Not rs.EOF
WritStr = ""
For i = 0 To rs.Fields.Count - 1
WritStr = WritStr & "" & Trim(ISNULL2SPACE(rs(i))) & ","
Next
Print #Fid, WritStr
rs.MoveNext
lngCount = lngCount + 1
Wend
Close #Fid
rs.Close
MsgBox "导出 " & Format(lngCount) & " 笔记录。"
End Function
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset
Dim i As Long
Dim WritStr As String
Dim Fid As Long
Dim lngCount As Long ' 计数。 If TextFileName = "" Then TextFileName = App.Path & "\" & TableName & ".txt"
If objConn.State = 0 Then objConn.Open
rs.Open "select * from " + TableName, objConn Fid = FreeFile
rs.MoveFirst
Open TextFileName For Output As #Fid
WritStr = ""
For i = 0 To rs.Fields.Count - 1
WritStr = WritStr & "" & rs.Fields(i).Name & ","
Next
Print #Fid, WritStr
While Not rs.EOF
WritStr = ""
For i = 0 To rs.Fields.Count - 1
WritStr = WritStr & "" & Trim(ISNULL2SPACE(rs(i))) & ","
Next
Print #Fid, WritStr
rs.MoveNext
lngCount = lngCount + 1
Wend
Close #Fid
rs.Close
MsgBox "导出 " & Format(lngCount) & " 笔记录。"
End Function
'cnn 数据源的连接对象
'TableName 数据库表
'TextFileName 将要导出到的文本路径(可选.若不选,则默认取TableName表名保存在当前工程目录下)e.g.
Call TabintoTxt(cnn, "表1", "E:\0.txt")
Dim rs As New ADODB.Recordset '建立ADO对象
Set rs = New ADODB.Recordset '实例化ADO对象
Dim i As Long
Dim WritStr As String
Dim Fid As Long
Dim lngCount As Long ' 计数。 If TextFileName = "" Then TextFileName = App.Path & "\" & TableName & ".txt" '如果传入的文件名称为空,则在当前应用程序路径下新建一个文件名称,结构为:当前路径+TableName(你传入的新文件名)
If objConn.State = 0 Then objConn.Open '当数据库为关闭时则打开
rs.Open "select * from " + TableName, objConn '查询数据库表名为:TableName(你传入的名称) Fid = FreeFile '得到一个可用的文件流序号
rs.MoveFirst '数据指针指向下一条数据
Open TextFileName For Output As #Fid '打开文件流序号并向TextFileName中传入数据
WritStr = "" '将数据清空
For i = 0 To rs.Fields.Count - 1 '查询当前内存中的数据指针中所有的字段
WritStr = WritStr & "" & rs.Fields(i).Name & "," '将某字段的字段名称写入变量WriteStr中
Next
Print #Fid, WritStr '将变量中的数据写入文件
While Not rs.EOF '如果数据指针没有到底
WritStr = ""
For i = 0 To rs.Fields.Count - 1
WritStr = WritStr & "" & Trim(ISNULL2SPACE(rs(i))) & ","
Next
Print #Fid, WritStr
rs.MoveNext
lngCount = lngCount + 1
Wend
Close #Fid
rs.Close
MsgBox "导出 " & Format(lngCount) & " 笔记录。"
End Function
现在楼主知道objConn ,TableName ,TextFileName 这三个参数的含义了?
objConn是个CONNECT对象,TableName是需要查找数据库的表名,TextFileName是你需要自定义的文件名
Public sub TabintoTxt(objConn As Object, TableName As String, Optional TextFileName As String)
'调用
dim cn as New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aa.mdb;Persist Security Info=False;"
'调用过程
call TabintoTxt cn,"表名","test"
'调用函数
i = TabintoTxt (cn,"表名","test")