簡體   English   中英

ADODB RecordSet.RecordCount 屬性總是返回 -1

[英]ADODB RecordSet.RecordCount property always returns -1

下面的代碼正確導出數據,但是我的debug.print行總是給出 -1。 我想檢索debug.print語句中的行數。 請提出什么問題。

Sub TEST()

        Dim rs As Object
        Dim iCols As Integer
        Set rs = CreateObject("ADODB.Recordset")
        On Error GoTo ERR
        Dim SQLSTR As String, MYVAL As String
        MYVAL = InputBox("Enter Query")
        SQLSTR = " " & MYVAL & ""
        CONNECT_TO_DWHS
        rs.Open SQLSTR, PERSONALDBCONT

            For iCols = 0 To rs.Fields.Count - 1
                ActiveSheet.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
            Next
         Debug.Print rs.RecordCount
        ActiveSheet.Cells(2, 1).CopyFromRecordset rs
        ActiveSheet.Cells(1, 1).Select

        CLOSE_CONNECTION_TO_SQL

            With ActiveWindow
                .SplitColumn = 0
                .SplitRow = 1
                .FreezePanes = True
            End With

        Exit Sub

   ERR:
        CLOSE_CONNECTION_TO_SQL
        MsgBox "There was an error"

  End Sub

嘗試指定光標位置。 在打開連接之前指定光標位置。

rs.CursorLocation = adUseClient
rs.Open SQLSTR, PERSONALDBCONT
For iCols = 0 To rs.Fields.Count - 1
  ActiveSheet.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
Debug.Print rs.RecordCount

請閱讀這篇文章: http : //www.geeksengine.com/article/recordcount-ado-recordset-vba.html

當您以ForwardOnly打開RecordSet (如果您不顯式聲明游標類型, ForwardOnly默認值),RecordCount 屬性返回 -1。

欲了解更多信息,請點擊此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM