在VBA中将记录计数设为-1

时间:2016-05-04 13:08:08

标签: excel excel-vba vba

我在Excel VBA中有以下代码。当我在RecordSet上添加一个监视时,它总是将记录计数显示为-1。事实上它应该显示3.我已经检查了记录集中的字段(通过添加监视),它显示了正确的字段名称。

Sub ConnectSqlServer()
Dim oConn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String

'Create connection string
sConnString = "Provider=sqloledb; Server=D-SRVR; Database=test;    Trusted_Connection=True; Integrated Security=SSPI;"
'Create the Connection and Recordset objects
Set oConn = New ADODB.Connection
Set rs = New ADODB.Recordset

'Open connection and execute
oConn.Open sConnString
Set rs = oConn.Execute("SELECT top 3 * from employee;")
End Sub

2 个答案:

答案 0 :(得分:2)

每个MSDN(此处:https://msdn.microsoft.com/en-us/library/ms676701(v=vs.85).aspx

  

Recordset对象的游标类型会影响是否可以确定记录数。对于只进游标,RecordCount属性将返回-1;静态或键集游标的实际计数;并且-1或动态游标的实际计数,具体取决于数据源。

答案 1 :(得分:0)

Ryan Farley写了这篇文章(http://www.slxdeveloper.com/page.aspx?action=viewarticle&articleid=33),他解释了如何从ADO记录集中获取记录数。 它对我有用。

P.S。对不起我的英文