MDB レコード数取得 [VB]

Visual Basic ADO.NET [Community Express]

OleDbCommand.ExecuteScalarメソッド

OleDbCommandオブジェクトのExecuteScalarメソッドを使って、Accessの表(MDBファイル)のレコード数を取得するプログラムを作成します。

VB Express [MDB版] サンプルプログラム

サンプル
  • フォームにボタンとラベル2つを貼り付け
  • ラベル2に、テーブルの全レコード数を表示
  • 検索ボタンを押下して、OleDbCommandオブジェクトのExecuteScalarで商品マスター表の全レコード数を取得
  • 接続文字列は、アプリケーション構成ファイルapp.configから取得するようにしてください。

販売管理データベース(商品マスター表)

Key 列名 データ型 サイズ 値要求 空文字列の許可
商品コード テキスト型 5 はい いいえ
商品名称 テキスト型 30 はい いいえ
販売単価 数値 整数型 はい いいえ

VB Express [SQL Server 版]

OleCommand.ExecuteScalarでテーブルの全レコード数を取得するサンプルはこちら

VB.NET [MDB版]

OleCommand.ExecuteScalarのサンプルはこちら

ソースリストの枠内をクリックすると全選択できます。

Option Strict On
Imports System.Data.OleDb

Public Class Form1

    '*********************************************************************
    ' 検索ボタン押下処理
    '*********************************************************************
    Private Sub Button1_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

        Try
            Using con As New OleDbConnection
              Using cmd As New OleDbCommand
                  ' 接続文字列の設定(MDB)
                  con.ConnectionString = _
                      "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                      "Data Source=" & Application.StartupPath & _
                      "\販売管理データベース.mdb"

                  ' OleDbCommand.Connectionプロパティの設定
                  cmd.Connection = con

                  ' DB接続
                  con.Open()

                  ' SQL文の設定
                  cmd.CommandText = "SELECT COUNT(*) FROM 商品マスター表"

                  ' 全レコード数を取得しラベルに表示
                  Me.Label2.Text = CStr(cmd.ExecuteScalar())

              End Using
            End Using
        Catch ex As Exception
            ' 例外が発生した時の処理
            MessageBox.Show(ex.ToString)
        End Try

    End Sub

End Class

単一の値を取得

ExecuteScalarは、最初の行の最初の列を返すので、単一の値を取得するSQL文を書けば、様々な値を求めることができます。

たとえば、最小値を求める時は、SQL文を"SELECT MIN(列名) FROM 表名" と記述します。

 ' 一番安い販売単価を求めるSQL文の設定
 cmd.CommandText = "SELECT MIN(販売単価) FROM 商品マスター表"
 ' 一番安い販売単価
 Dim min As Integer  = cmd.ExecuteScalar()