PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   疑難雜症區 (https://www.pcdvd.com.tw/forumdisplay.php?f=34)
-   -   能不能教一下,用vb6把資料庫的資料轉成純文字檔呢? (https://www.pcdvd.com.tw/showthread.php?t=617111)

mor8 2006-05-03 09:15 PM

能不能教一下,用vb6把資料庫的資料轉成純文字檔呢?
 
能不能教一下
如何用
vb6把sql server的北風資料庫中的customers
轉成純文檔或者csv檔
謝謝

Dakpa 2006-05-04 05:36 PM

我已經沒有安裝VB6很久了,只能講大概。

利用資料庫相關控制項把資料庫中的資料表打開後,逐項讀取該欄位所有的資料,每讀一筆(循序)或全部讀取後,在寫入檔案中(Output模式,可以弄成每一筆資料就是一行或者是scv的格式,這都是你自己可以用vb寫出來的)。

mor8 2006-05-04 08:57 PM

引用:
作者Dakpa
我已經沒有安裝VB6很久了,只能講大概。

利用資料庫相關控制項把資料庫中的資料表打開後,逐項讀取該欄位所有的資料,每讀一筆(循序)或全部讀取後,在寫入檔案中(Output模式,可以弄成每一筆資料就是一行或者是scv的格式,這都是你自己可以用vb寫出來的)。

好高興
有人回答了
可是還是不懂你的方式
到底要如何寫程式碼
利用ado把資料庫中的資料表開啟後

Private Sub Command1_Click()
Dim cn As New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB;Network Library=DBMSSOCN;Data Source=192.168.1.1,1433;Initial Catalog=Northwind;User Id=sa;Password="
cn.Open

Dim rs As New ADODB.Recordset
rs.Open "SELECT * FROM Customers ", cn, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = rs

End Sub
在來
我就不會了
以上有請各位兄台幫幫忙
謝謝.

mor8 2006-05-05 12:58 PM

麻煩會的人幫忙一下
謝謝

穩ㄝ 2006-05-05 01:25 PM

撈出資料後跑一個雙層迴圈....
varFile = FreeFile
Open <your text file> For Output As #varFile
  
Do While Not rs.Eof
  strData = ""
  For i = 0 to rs.Fields.Count - 1
    strData = strData & Trim(rs(i).Value) & ","
  Next i
  Print #varFile, strData
Loop

Close #varFile

mor8 2006-05-05 10:41 PM

引用:
作者穩ㄝ
撈出資料後跑一個雙層迴圈....
varFile = FreeFile
Open <your text file> For Output As #varFile
  
Do While Not rs.Eof
  strData = ""
  For i = 0 to rs.Fields.Count - 1
    strData = strData & Trim(rs(i).Value) & ","
  Next i
  Print #varFile, strData
Loop

Close #varFile

您好:
我程式碼改成如下
似乎進入無窮迴圈的樣子
這個純文字檔一直擴充"C:\Text2.txt"
檔案就一直變大
不知那裡出問題了
謝謝
Private Sub Command1_Click()
Dim cn As New ADODB.Connection
cn.ConnectionString = "Provider=SQLOLEDB;Network Library=DBMSSOCN;Data Source=192.168.1.1,1433;Initial Catalog=Northwind;User Id=sa;Password="
cn.Open

Dim rs As New ADODB.Recordset
rs.Open "SELECT * FROM Customers ", cn, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = rs
varFile = FreeFile
Open "C:\Text2.txt" For Output As #varFile
  
Do While Not rs.Eof
  strData = ""
  For i = 0 to rs.Fields.Count - 1
    strData = strData & Trim(rs(i).Value) & ","
  Next i
  Print #varFile, strData
Loop

Close #varFile
End Sub

Dakpa 2006-05-06 07:04 AM

利用單步執行的方式除錯,也可以在程式碼裡面加上一些輸出在即時視窗用的程式碼幫助除錯。

isakira 2006-05-06 10:21 AM

引用:
作者mor8
Do While Not rs.Eof
  strData = ""
  For i = 0 to rs.Fields.Count - 1
    strData = strData & Trim(rs(i).Value) & ","
  Next i
  Print #varFile, strData
Loop


你有迴圈,但是資料列沒有往下動,這段修改一下如下
Do While Not rs.Eof
  strData = ""
  For i = 0 to rs.Fields.Count - 1
    strData = strData & Trim(rs(i).Value) & ","
  Next i
  Print #varFile, strData
rs.movenext
Loop

mor8 2006-05-06 03:42 PM

引用:
作者isakira
你有迴圈,但是資料列沒有往下動,這段修改一下如下
Do While Not rs.Eof
  strData = ""
  For i = 0 to rs.Fields.Count - 1
    strData = strData & Trim(rs(i).Value) & ","
  Next i
  Print #varFile, strData
rs.movenext
Loop

真是太感謝您了。 :like:

mor8 2006-05-08 11:12 AM

不好意思在請教一個問題
我將程式碼改成下面(紅色字的部分)
希望輸出成純文字檔
不是之前用逗號來區分
程式一遇到Null值無法轉出,就出現Null錯誤警告,
請問如何解決Null的問題
謝謝
LenArr = Array(5,40,30,30,60,15,15,10,15,24,24) '此句是新增加的,資料庫每一欄位的長度
Do While Not rs.EOF
strData = ""
For i = 0 To rs.Fields.Count - 1
strData = strData & String((LenArr(i) - Len(Trim(rs(i).Value))), " ") & Trim(rs(i).Value) '此句是修改的
  Next i
  Print #varFile, strData
rs.movenext
Loop


所有的時間均為GMT +8。 現在的時間是04:23 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。