2016-05-04 10 views
0

Ich habe den folgenden Code in Excel VBA. Wenn ich eine Uhr in RecordSet hinzufüge, wird immer die Anzahl der Datensätze als -1 angezeigt. Eigentlich sollte es 3 anzeigen. Ich habe die Felder im Recordset (durch Hinzufügen einer Uhr) überprüft und es zeigt korrekte Feldnamen.Erhalten der Datensatzanzahl als -1 in VBA

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 

Antwort

2

Per MSDN (hier: https://msdn.microsoft.com/en-us/library/ms676701(v=vs.85).aspx)

Der Cursor Typ des Recordset-Objekts beeinflusst, ob die Anzahl der Datensätze bestimmt werden kann. Die RecordCount-Eigenschaft gibt -1 für einen Nur-Vorwärts-Cursor zurück; die tatsächliche Anzahl für einen statischen oder Keyset-Cursor; und entweder -1 oder die tatsächliche Anzahl für einen dynamischen Cursor, abhängig von der Datenquelle.

0

Ryan Farley schrieb diesen Artikel() wo er erklärt, wie man einen Datensatz von einem ADO-Recordset bekommt. Es funktioniert für mich.

P.S. Entschuldigung mein Englisch

Verwandte Themen