[英]SQL Record Count VBA ADODB connection
嘗試使用ADODB記錄集在VBA中處理RecordSet計數,但似乎無法使該計數正常工作。
我在工作表中有50條具有唯一ID的記錄,其中一些已經在數據庫中,而有些則沒有,代碼本身就是循環遍歷每個單元格並獲取該單元格的值並通過SQL select語句運行如果有成功,則說找到,否則就什么也不說。
不幸的是,它似乎為所有內容返回相同的結果,即使我知道ID都不存在。
波紋管
Sub NO6_ChequeCheck()
Dim con As ADODB.Connection
Dim rec As ADODB.Recordset
Set con = New ADODB.Connection
Set rec = New ADODB.Recordset
Dim sql As String
Dim client As String
Dim myRange As Range
Dim myCell As Range
Set myRange = Range("A2:A52")
Dim i As Integer
i = 2
With con
.Provider = "MSDASQL"
.ConnectionString = "DSN=localhostTest"
.Open
End With
For Each myCell In myRange
client = myCell.text
sql = "SELECT * FROM crm_client_cheques WHERE id = '" & client & "' "
rec.Open sql, con
If rec.RecordCount = 0 Then
Cells(i, "H").Value = "Nothing"
Else
Cells(i, "H").Value = "Found"
End If
rec.Close
i = i + 1
Next myCell
我遇到的主要問題是,如果我將0切換為50,然后將=符號弄亂,然后將其更改為<或>,則結果將更改為其中一個,這使我相信它不會將Recordcount重置為零因此它每次都會堆疊,因此它總是在每個循環中向上而不是返回0。
我試圖告訴它關閉並等於零,並四處移動各種代碼,但無濟於事。
所有幫助
您需要檢查sql查詢是否返回任何記錄。 你可以這樣做
If Not (rec.BOF And rec.EOF) Then 'There are no records
Cells(i, "H").Value = "Nothing"
else
Cells(i, "H").Value = "Found"
End if
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.