我正在尝试使用recorderdeset从sybase获取数据到excel。 该表有appx。 10万行,但excel只显示有限数量的行appx 10k。 以下是反映我想要做的事情的片段:
Dim DB_Con As ADODB.Connection
Call GetConnection(Impact_DB)
Set DB_Con = ThisWorkbook.cnn_dlt
Call ThisWorkbook.Execute_Query("scratchdb..abc", "A2", DB_Con)
GetConnection(Impact_DB):
cnn_dlt.Open "DRIVER={MERANT 3.60 32-BIT Sybase};Srvr=" + server + ";DB='" + db +"';Uid=" + user + ";Pwd=" + `enter code here`passwd
Execute_Query:
rst As New ADODB.Recordset
TmpSqlTxt = "select * from " + Tbl_Name
rst.Open TmpSqlTxt, Impact_DB, adOpenStatic
row_cnt1 = rst.RecordCount
WS.Range(Range_Start).CopyFromRecordset rst
WS.Select
WS.Cells.Select
WS.Cells.EntireColumn.AutoFit
rst.Close
ThisWorkbook.ActiveSheet.Cells(2, 1).Select
在我看来,记录集无法获取所有行..因为我尝试显示记录集的数量而且只有10k。
答案 0 :(得分:0)
您使用.RecordCount
是错误的。要确定正确的记录计数,您必须先在记录集上使用.MoveLast
。有关详细信息,请参阅http://allenbrowne.com/ser-29.html。
rst As New ADODB.Recordset
TmpSqlTxt = "select * from " + Tbl_Name
rst.Open TmpSqlTxt, Impact_DB, adOpenStatic
rst.MoveLast
'^^^^^^^^^^^^
row_cnt1 = rst.RecordCount