Option Compare Database Option Explicit Const cnString = "Driver={MySQL ODBC 5.1 Driver};" & _ "server=mySQLServer;" & _ "port=3306;" & _ "database=test;" & _ "uid=testuser;" & _ "pwd=password;" Sub test() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open cnString rs.CursorLocation = adUseClient rs.Open "select * from test_table;", cn Debug.Print "rs.RecordCount", rs.RecordCount, TypeName(rs.RecordCount) rs.Close: cn.Close Set rs = Nothing: Set cn = Nothing End Subこのコード実行結果:rs.RecordCount 31 LongLong
recordcountにはLongLongで値が戻る。
なので、格納先はLongPtrを使用/Longにキャスト/Variantで受けてDecimal。
64bit環境のみならばLongLong使用可。
<追記>
Win7SP1時点で、ADOに修正が入る。修正以降は、LongLongが戻らず、Longで戻る模様。
0 件のコメント:
コメントを投稿