小弟是用VB6+SP5 OS:xp database:access 97
小弟貼上我的程式碼及問題請前輩指導
-------------------------
Q:小弟是把CSV檔載入到我的database中,但是如果遇到CSV檔中
有整行的空白就會造成死在清空資料庫的DO ~ LOOP裡面,我
 看了一下當有載到整行空白後刪除動作執行到那一筆之後,
 adodc1.recordset.recordcouter 的值經過Delete也不會變動
 也就是EOF永不成立
 我試著在載入的時候如果遇到整行的空白,我就自動幫他填上
 NULL,但是還是不行,一樣會死,recordset中如果有空白應該
 都被我補上NULL了..但是為甚麼還是會死了..?
 請各位前輩抽空幫我解惑吧...Thanks..
-------------------------
--------Code-------------
Sub Set_DB()
On Error Resume Next
  Dim LineData As String
  Dim Da1, Da2, Da3, Da4, Da5, Da6, Da7 As String
  Set DataGrid1.DataSource = Nothing
  DataGrid1.Refresh
  If Adodc1.ConnectionString = "" Then
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                 "Data Source=" & App.Path & "\Card.mdb;" & _
                 "Persist Security info=false"
    Adodc1.RecordSource = "select * from CARDNO"
    Adodc1.Refresh
    DoEvents
  End If
  If Adodc1.Recordset.RecordCount <> 0 Then
    ProgressBar1.Max = Adodc1.Recordset.RecordCount
    ProgressBar1.Value = 0
    ProgressBar1.Visible = True
    Adodc1.Recordset.MoveFirst
    Do While Not Adodc1.Recordset.EOF
     DoEvents
     Adodc1.Recordset.Delete
     DoEvents
     Adodc1.Recordset.MoveNext
     ProgressBar1.Value = ProgressBar1.Value + 1
     'Adodc1.Refresh
     Adodc1.Recordset.Save
    Loop
    Adodc1.Refresh
    DoEvents
  End If
  ProgressBar1.Visible = False
  Open Temp For Input As #1
  Line Input #1, Temp
  Do While Not EOF(1)
    Line Input #1, LineData
    LineData = LineData & ","     '為了防止字串最後沒有,號再此補上一個以免最後一格載入無效
    Da1 = CutStr(LineData, 1)
    Da2 = CutStr(LineData, 2)
    Da3 = CutStr(LineData, 3)
    Da4 = CutStr(LineData, 4)
    Da5 = CutStr(LineData, 5)
    Da6 = CutStr(LineData, 6)
    Da7 = CutStr(LineData, 7)
    Adodc1.Recordset.AddNew
    Adodc1.Recordset("NUM") = Da1
    Adodc1.Recordset("FLOOR") = Da2
    Adodc1.Recordset("CARD1") = Da3
    Adodc1.Recordset("CARD2") = Da4
    Adodc1.Recordset("CARD3") = Da5
    Adodc1.Recordset("CARD4") = Da6
    Adodc1.Recordset("CARD5") = Da7
    Adodc1.Recordset.Update
  Loop
  Close #1
  Set DataGrid1.DataSource = Adodc1
  DataGrid1.Refresh
  DoEvents
End Sub
arrow
arrow
    全站熱搜

    vbqa 發表在 痞客邦 留言(3) 人氣()