关于将数据库中表导出成文本的问题??

beckham1122 2003-03-28 02:20:25
不知哪为知道如何将数据库中的表的内容导出成文本文件???急盼
...全文
31 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaogang110 2003-04-01
  • 打赏
  • 举报
回复
Do While Not rs.EOF
num_processed = num_processed + 1
For i = 0 To num_fields - 1
field_value = rs.Fields(i).Value
Print #fnum, field_value & _
Space$(field_width(i) - _
Len(field_value));
Next i
Print #fnum, ""
rs.MoveNext
Loop
以上过程摘自“书剑狂生”的答案中
你只要在field_value=rs.fields(i).value&""就可以了
或者可以Print #fnum, field_value&""Space$(field_width(i)-Len(field_value));
zhaogang110 2003-03-30
  • 打赏
  • 举报
回复
导出的过程上面已经很详细了,其实你可以把上面导出来的文件再次处理
处理文本的过程:
Dim i As Integer, zfc As Variant, num As Integer, a As Integer
Dim str As String, r As Integer
Dim p() As String, k As Integer, aaa As String, m As Integer, ass As String, bb As Integer
Open "从数据库中输出的文本文件" For Input As #1
Open "处理以后的文件" For Output As #2
k = 0
Do While Not EOF(1)
k = k + 1
ReDim Preserve p(k)
Line Input #1, p(k)
Loop
Close #1
For r = 1 To k
num = Len(p(r))
i = 0
Do While i < num
i = i + 1
str = Mid(p(r), i, 4)
If str = "Null" Then
i = i + 4
End If
ass = Mid(p(r), i, 1)
bb = Asc(ass)
If bb >= 48 And bb <= 57 Then
ass = Val(Mid(p(r), i, 1))
Else
ass = Mid(p(r), i, 1)
End If
zfc = zfc + ass
Loop
Print #2, zfc
zfc = ""
Next r
Print #2,
Close #2
End Sub
我就是这样处理的,希望能对你有帮助!
beckham1122 2003-03-28
  • 打赏
  • 举报
回复
我从一个例子上看的.
pcwak 2003-03-28
  • 打赏
  • 举报
回复
谁的???
beckham1122 2003-03-28
  • 打赏
  • 举报
回复
我现在用的就是上面这段程序.但它有个问题,要求记录中所有字段内容不能为空.而且不对齐.请问怎么办
pcwak 2003-03-28
  • 打赏
  • 举报
回复
' Export the file.
Private Sub cmdExport_Click()
Dim fnum As Integer
Dim file_name As String
Dim database_name As String
Dim db As Database
Dim rs As Recordset
Dim num_fields As Integer
Dim field_width() As Integer
Dim field_value As String
Dim i As Integer
Dim num_processed As Integer

On Error GoTo MiscError

' Open the output file.
fnum = FreeFile
file_name = txtFileName.Text
Open file_name For Output As fnum

' Open the database.
Set db = OpenDatabase(txtDatabaseName.Text)

' Open the recordset.
Set rs = db.OpenRecordset( _
"SELECT * FROM Books ORDER BY Title")

' Start with the names of the fields.
num_fields = rs.Fields.Count
ReDim field_width(0 To num_fields - 1)
For i = 0 To num_fields - 1
' We're only working with Text here. Other
' types are different. For example, an
' integer may take 2 bytes to store but 6
' characters to display.
field_width(i) = rs.Fields(i).Size
If field_width(i) < Len(rs.Fields(i).Name) Then
field_width(i) = Len(rs.Fields(i).Name)
End If
field_width(i) = field_width(i) + 1
Print #fnum, rs.Fields(i).Name;
Print #fnum, Space$(field_width(i) - _
Len(rs.Fields(i).Name));
Next i
Print #fnum, ""

' Process the records.
Do While Not rs.EOF
num_processed = num_processed + 1
For i = 0 To num_fields - 1
field_value = rs.Fields(i).Value
Print #fnum, field_value & _
Space$(field_width(i) - _
Len(field_value));
Next i
Print #fnum, ""
rs.MoveNext
Loop

' Close the file and database.
rs.Close
db.Close
Close fnum
MsgBox "Processed " & _
Format$(num_processed) & " records."

Exit Sub

MiscError:
MsgBox "Error " & Err.Number & _
vbCrLf & Err.Description
End Sub
Private Sub Form_Load()
txtDatabaseName.Text = App.Path & "\books.mdb"
txtFileName.Text = App.Path & "\books.txt"
End Sub


zhangbob 2003-03-28
  • 打赏
  • 举报
回复
ado实现表结构的分析

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim file As String
Private Sub Command1_Click()
cd.Filter = "数据库(mdb)|*.mdb"
cd.ShowOpen
file = cd.FileName
Dim sql As String
Open "c:\aa.txt" For Output As #1
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & file & ";Persist Security Info=False"
cn.Open
Set rs = cn.OpenSchema(adSchemaStatistics)
Do While Not rs.EOF
If InStr(CStr(rs.Fields("TABLE_NAME").Value), "MSys") <= 0 Then
Write #1, rs.Fields("TABLE_NAME").Name, rs.Fields("TABLE_NAME").Value
End If
rs.MoveNext
Loop
Close #1
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧