我在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
答案 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。对不起我的英文