作者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
1F:推 Marty:access的问题...可以用[压缩/修复资料库]解决... 06/09 08:37
2F:→ evantw:所以楼上的意思是~~程式写法并没有不妥~只是access 问题罗? 06/09 22:54
※ 编辑: evantw 来自: 219.81.228.153 (06/09 22:56)