SQLlogging计数VBA ADODB连接

尝试在VBA中使用Recordset计数使用ADODBlogging集,但它似乎不会使计数正常工作。

我在工作表中有50条logging,其中有一些已经在数据库中,有些则不在,代码本身是循环遍历每个单元格,并获取单元格的值并通过SQL select语句运行如果有一击就说如果没有的话就说什么都不说。

不幸的是,它似乎返回相同的结果,即使是我知道的id不存在。

代码波纹pipe

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和混乱=符号,并将其更改为<或>则结果将更改为,这使我相信它不重置logging计数回所以它每次都堆叠起来,所以它总是在每个循环中上升,而不是回到0。

我试图告诉它closures和等于没有,并移动了各种代码,但没有什么帮助。

所有帮助appriciated

你需要检查你的SQL查询是否有任何logging返回。 你可以通过

  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