• 締切済み

VB2005でDBのレコード件数の取得方法

お世話になります。 VB2005でデータベースに接続して 読み込むテーブルのレコード件数を 取得したいのですが。 内容を配列で戻すため、動的配列を 使いたい為です。 レコード件数なしは、調べて HasRows=Falseでよいのは 分かったのですが。 宜しくお願いいたします。

みんなの回答

  • KG_
  • ベストアンサー率62% (34/54)
回答No.1

HasRowsをつかってらっしゃるみたいなので、OldeDbDataReaderをしようしていらっしゃると推測しますが。プロパティやメソッドをパッ見る限りないみたいですね。 DataTableを使用すると.Rows.Countで取得できるみたいです。

sendaitaro
質問者

お礼

ありがとうございます。 おっしゃる通りです。 色々試して、 Dim SQLcmd As OleDb.OleDbCommand SQLcmd.CommandText = "select count(*) from *****" MsgBox(SQLcmd.ExecuteScalar()) で、件数はとりあえず取得できるみたいです。 すいません、自己レスになってしまいました。

関連するQ&A

  • DCountでテーブルのレコード件数を取得するには

    アクセスのテーブル1に何件レコードがあるかをvbaのDCountで取得したいのですが Sub a() MsgBox DCount("テーブル1") End Sub すると、引数は省略できません。(Error 449)になります。 フィールドは件数あり、レコードが入ってたり入ってなかったりするし、主キーはありません。 アクションクエリの削除クエリですべてのレコードを削除したりするので レコード件数が0件なのか、レコードがはいってるかをDCountで取得できればなー と思うのですが、どうすればいいでしょうか?

  • VBからオラクルの先頭レコードを取得

    VB6をoo4oでオラクルに接続しています。オラクルのテーブルの先頭レコード値や次のレコードの値の取得方法を教えて下さい。フィールドの値を参照して取得するのではなく、ただ単に先頭レコードや次のレコードの値を取得したいです。教えて下さい!

  • テーブルのレコード件数取得について

    はじめまして。 postgresの「テーブルのレコード件数取得」について教えてください。 何も考えずに select count(*) from tblA; というSQLの記述をしていたのですが、レコード件数が30万件を超えた あたりから、結果が戻るまでに4~5秒もかかるようになりました。 もっと効率の良い(=短い時間)検索方法はあるのでしょうか? ちなみに postgres+C+PC-Soralis の組みあわせです。 マシンはPen4-2Ghz メモリーは512MBです。

  • VB.netでmdbのレコードを取得

    VB.netからAccessで作成したデータベースのレコードを 取得するプログラムを作りたいと考えています。 ですが、データベースを操作するプログラムは初めてですので、 どうもイメージがわきません。 やりたいことは、 1.VBからmdbにアクセス(DAO) 2.SELECTでレコードを取得 3.取得したレコードから必要なフィールドをテキストボックに表示 上記の処理が可能であれば、コーディングのヒントを頂けないでしょうか? よろしくお願いします --- OS:Windows Vista 開発環境:VS2005 pro

  • VBからDB2への接続について(レコード数の取得)

    初歩的な質問で申し訳ございませんが、以下内容についてご教授願います。 ・やりたいこと VBからDB2へ接続後、実行したSELECT文の結果のレコード数を取得したい。 ・環境 Visual Stadio 2005 DB2 9.5 ・現在のコード Sub main() Dim wScriptHost As Object 'パスの取得 (MyDocuments) Dim sMyPath As String wScriptHost = CreateObject("WScript.Shell") sMyPath = wScriptHost.SpecialFolders("MyDocuments") & "\" wScriptHost = Nothing Dim cn As ADODB.Connection = Nothing 'ENOVIAデータベース接続変数 cn = New ADODB.Connection cn.Open("Provider=IBMDADB2 ; Data Source=" _ & DBNAME & " ; Uid=" & DBUSER & " ; Pwd=" & DBPASSWORD) 'DBへ接続 Dim sel As String 'SELECT文の指定 sel = "select * from テーブル名" Dim rec As New ADODB.Recordset ' SELECT文の実行 rec = cn.Execute(sel) MsgBox(rec.RecordCount)  end sub ・実行結果  DBへの接続およびレコードの取得は正常に実行出来ているのですが、RecordCountが「-1」と なってしまいます。 お手数をおかけしますが、宜しくお願い致します。

  • VB上でのレコードセットの扱いについて

    お世話になっています。 現在VB6+SQLSERVERで開発をしているんですが、SQLで取得したレコードセットオブジェクトの扱いについての質問です。 取得したレコードセットオブジェクトをループ文等で使う場合、一旦配列に代入して使うのと、そのままMoveNext文で使うのでは、速さでは違いはありますか?

  • C++ WMI レコード件数取得方法

    お世話になっております。 C++でWMIを使用して、別PCのディスク容量を取得しようと思っています。 SQLの検索結果の「レコード件数」を取得する方法はありますでしょうか? (レコード件数で配列サイズを決めようとしています) ADOとかだとRecordCountとかで取得出来るのですが・・・。 COMオブジェクトで、IUnknownインターフェイスを使っているらしいので、 それの参照カウントって物の件数を調べられたら可能かとも考えましたが、 わかりませんでした・・・。 すみませんがご教授ください>< 以下が記述途中のソース抜粋です。 ===== HRESULT hres; ULONG uReturn = 0; IWbemServices *wbem_services = NULL; IEnumWbemClassObject *wbem_enumerator = NULL; IWbemClassObject *pclsObj = NULL; unsigned long *DiskSize; //本当はクラス使用です。 hres = wbem_services->ExecQuery(L"WQL", L"SELECT * FROM Win32_LogicalDisk WHERE DriveType=3", WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &wbem_enumerator); ↓↓↓↓↓ //ここで、RecordCountのように件数を取得がしたい。 DiskSize = new int[wbem_enumerator->RecordCount]; ↑↑↑↑↑ while (hres == S_OK) { hres = wbem_enumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); } delete [] DiskSize;

  • 複数のテーブルの レコード件数所得

    sql初心者です。 php sql4.1を使って テーブルA・テーブルBの総レコード件数を所得がうまくできません。 テーブルAの◇◇が○○の含むレコード件数を所得は SELECT count(*) FROM テーブルA WHERE ◇◇ LIKE ○○ でできました。 テーブルA・テーブルBの◇◇が○○の含むレコード件数を所得はどうすればいいのでしょうか? よろしくお願いいたします.

    • ベストアンサー
    • MySQL
  • オラクルからレコードを取得

    VBをoo4oでオラクルの接続していますが、オラクルのテーブルをレコードごとにEXCELのシートに出力したいです。 たとえばテーブルのレコード数が5の場合EXCELのsheet1からsheet5に分け出力したいです。 教えて下さい。

  • 日付の最大値レコードを取得する方法について

    お世話になります。 SQLで日付の最大値を取得する方法です。 テーブルのデータ内容は以下のようになっています。 | 社員番号 | 社員名 | 日付 | 順序 | +---------+-------+-----------+-----+ | 100 | AAA | 2011/05/01 | 2 |   ← このレコードを取得したい +---------+-------+-----------+-----+ | 100 | AAA | 2011/05/01 | 1 | +---------+-------+-----------+-----+ | 100 | AAA | 2011/04/01 | 1 | +---------+-------+-----------+-----+ | 200 | BBB | 2011/04/01 | 2 |   ← このレコードを取得したい +---------+-------+-----------+-----+ | 200 | BBB | 2011/04/01 | 1 | +---------+-------+-----------+-----+ 取得したいレコードは、 社員ごとの最大日付の最大順序をもつレコードです。 (上記の1行目と4行目のレコードを取得したい) この場合、 下記のようなSQLを考えます。 --------------------------------- SELECT 社員番号, 社員名, 日付 FROM テーブル名 WHERE 社員番号 = 'xxx' AND 日付 = (SELECT MAX(日付) FROM テーブル名 ) AND 順序 = (SELECT MAX(順序) FROM テーブル名 ) ---------------------------------- 但し、上記の場合、 社員ごとに最大値レコードが取得できません。 どなたかレコード取得方法について 教えていただけないでしょうか? よろしくお願いいたします。

専門家に質問してみよう