想請問w大,
此例中單單只是定義一個A
但查詢過程中都沒有用到A
這樣就可以產生效果了嗎?
還是說,原先的.Cells(i, "A")是看A欄
現在變成會看A陣列?
不好意思,有點舊的文了^^"
※ 引述《windknife18 (windknife18)》之銘言:
: 因為沒有 SQL 所以你試看看可不可行囉
: Dim A As Variant
: Dim row as Integer
: Dim start_row as Integer
: row_no = Sheet1.Range("a1").End(xlDown).Row
: start_row TextBox1.Text
: A = Range(Cells(start_row, 1), Cells(row_no, 1))
: For i = 1 to row_no-start_row+1
: 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
: Range(Cells(start_row, 1), Cells(row_no, 1)) = A
: ※ 引述《evantw (安安小成)》之銘言:
: : 軟體:Excel
: : 版本:2003
: : 我有個 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: 114.47.1.22