作者evantw (安安小成)
看板Visual_Basic
標題[VBA ] 有上千筆資料比對~~要如何寫才能提高執行效能??
時間Mon Jun 28 11:45:08 2010
我有個 Excel 內有上千筆資料要和資料庫 .mdb 做比對
我是用 VBA 寫法,用程式 Row 的
目前是一行一行的讀取然後與資料庫做比對
不過因為有上千筆~~
所以在比對程式 Row 時, Excel 感覺都快當掉了
而且比對時間也蠻長的~~(可能是電腦效能原因吧)
我目前所需求的是
有上千筆資料要與資料庫中的 text 資料表欄位 A 做比對
如果在資料庫中沒有資料就 Show 出 No Data 的字
以下是我的寫法~~
For i = TextBox1.Text To Sheet1.Range("a1").End(xlDown).Row
strsql = "select * from test where a like'" & .Cells(i, "A") & "'" '查詢
Set myrst = myCon.Execute(strsql)
If myrst.EOF = True Then
.Cells(i, "B") = "No Data"
j = j + 1 '計算沒有資料的筆數
End If
Next
因此~~想請教各位高手們有沒有更快速的方法將上千筆資料與資料庫快速做比對呢??
能否給的提示做法~~謝謝 ^^
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.81.233.159
推 Marty:把Excel的資料連結到Access作..只有幾千筆應該幾秒就好了.. 06/28 12:53
→ evantw:請問所謂的資料連結是指"取得外部資料"嗎??我連結好後呢?? 06/28 13:56
→ evantw:要怎麼判斷呢??? 06/28 13:56
→ JacobTai:一定要用 like 做比對嗎? 06/28 14:17
→ evantw:也不一定要用like~~只是要判斷資料庫中是否有紀錄而已~~ 06/28 14:26
推 sueadolph:推一樓的方式 06/28 19:16
→ sueadolph:原po的迴圈也有點怪?目前這樣子是每一筆資料,就去SQL 06/28 19:17
推 sueadolph:不知轉成用VB2008 使用LINQ會不會速度好點? 06/28 19:22
→ fphoenix923:存取資料庫應該儘量一次把所需要的資料提出。 06/28 21:00