作者evantw (安安小成)
看板Visual_Basic
標題[VBA ] 大量更新的語法問題??
時間Tue Jun 8 23:04:25 2010
使用環境:Excel 2003 -vba + access資料庫
我利用 Excel VBA 來更新 資料庫 中的資料
因為我需要一次大量更新多筆資料
我利用 ListView 來做列表更新
所以我就寫了以下的更新語法 (資料庫連接語法省略)
只節錄部分語法~~
For i = ListView1.ListItems.Count To 1 Step -1
strsql = "select * from test where id = " & _
ListView1.ListItems(i).Text & ""
Set myrst = myCon.Execute(strsql)
myrst.MoveFirst
Set myconn = New ADODB.Connection
With myconn
.Open myCon
With New ADODB.Recordset
.Open strsql, myconn, , adLockOptimistic
.Fields("name").Value = ListView1.ListItems(i).SubItems(2)
.Fields("data").Value = ListView1.ListItems(i).SubItems(3)
ListView1.ListItems.Remove i
.Update
.Clos
End With
Set myconn = Nothing
End With
Next
以上這樣確實能達到我想要 一次大量更新欄位資料的目的
但是這樣跑個幾次後
發現 access 資料庫的檔案卻異常變大
從 1.5MB 飆到 30幾MB
想這是我的程式語法造成的
還是本身 access 資料庫就會這樣
想請高手們幫我解惑??
如果是程式上可以再做修改優化
能不能幫我做修改
--------------------------------------
另外想再請教一個問題~~
如果我有一個變數 X 內容是 A001
我想透過 VBA 語法 X = X + 1
要怎樣寫??
謝謝~~
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.81.234.21
推 Marty:access的問題...可以用[壓縮/修復資料庫]解決... 06/09 08:37
→ evantw:所以樓上的意思是~~程式寫法並沒有不妥~只是access 問題囉? 06/09 22:54
※ 編輯: evantw 來自: 219.81.228.153 (06/09 22:56)