Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

RecordSetオブジェクトを作成する方法 : VBAのTips解説



OpenRecordsetメソッド

OpenRecordsetメソッドは、新しいRecordsetオブジェクトを作成しRecordsetsコレクションに追加するメソッドです。DAOでは、このメソッドを用いてRecordsetオブジェクトを作成します。

  • 書式
Set recordset = object.OpenRecordset {(source), type, options, lockedits}
  • 引数
引数 意味 指定
recordset Recordset オブジェクトを表すオブジェクト変数を指定します 省略不可
object 既存のオブジェクトを表すオブジェクト変数を指定します 省略不可
source objectに指定したRecordsetオブジェクトのレコードのソースをを指定します ソースはテーブル名、クエリー名、またはレコードを返すSQLステートメントです。なお、Recordsetオブジェクトの場合、この引数にはテーブル名のみを指定できます。 省略不可
type 引数recordsetに指定したRecordsetの種類を指定します 省略可。省略した時は、引数source値に基づいて適切な値が自動的に設定されます
options Recordsetの特性を定数の組み合わせで指定します 省略可。省略した時は、何も特性を指定しないことになります
ockeditsl Recordsetのロック状態を定数で指定します 省略可。省略した時は、dbPessimistic(Jet ワークスペースの既定値)、dbReadOnly(ODBCDirect ワークスペースの既定値)となります

引数の設定値

  • 引数type
引数 意味
dbOpenTable テーブルタイプのRecordsetオブジェクトを開く(Jetワークスペースでのみ使用可)。 テーブルに対して、レコードの追加、変更、削除を行う
dbOpenDynamic 動的タイプのRecordsetオブジェクトを開く(ODBCDirect ワークスペースでのみ使用可)
dbOpenDynaset ダイナセットタイプのRecordsetオブジェクトを開く。1つまたは複数のテーブル、クエリに対して、レコードの追加、変更、削除を行う
dbOpenSnapshot スナップショットタイプのRecordset オブジェクトを開く。読み取り専用。データの検索、またはレポートの作成に使用する
dbOpenForwardOnly 前方スクロールタイプのRecordsetオブジェクトを開く。レコードのスクロールが前方のみである点以外、dbOpenSnapshotと機能は同等です
  • 引数options
引数 意味
dbAppendOnly 新しいレコードを追加することができますが、既存のレコードの編集および削除を行うことはできません (ダイナセットタイプのRecordset オブジェクトでのみ使用可)
dsbSQLPassThrough SQLステートメントをJet接続型ODBCデータソースに渡して処理する(スナップショットタイプのRecordsetオブジェクトでのみ使用可)
dbSeeChanges 編集中のデータを他のユーザーが変更できない(ダイナセット タイプの Recordset オブジェクトでのみ使用可)
dbDenyWrite 他のユーザーからのレコードの修正、追加を拒否する(Recordset オブジェクトでのみ使用可)。
dbDenyRead 他のユーザーからのテーブルデータの読み取りを拒否する(テーブル タイプの Recordset オブジェクトでのみ使用可)
dbForwardOnly 前方スクロールタイプのRecordsetオブジェクトを作成する(スナップショットタイプのRecordsetオブジェクトでのみ使用可)
dbReadOnly 他のユーザーからのRecordset変更を拒否する(Jet データベース エンジンでのみ使用可)
dbRunAsync 非同期クエリーを実行する(ODBCDirect ワークスペースでのみ使用可)
dbExecDirect SQLPrepareをスキップし SQLExecDirectを直接呼び出してクエリーを実行する(ODBCDirect ワークスペースでのみ使用可)
dbInconsistent 矛盾(他のレコードに影響を与える)を許す更新を可能にする (ダイナセットタイプとスナップショットタイプのRecordsetオブジェクトでのみ使用可)
dbConsistent 一貫性のある更新(他のレコードに影響を与えない)のみを可能にする (ダイナセットタイプ および スナップショットタイプのRecordsetオブジェクトでのみ使用可)
  • 引数lockedits
引数 意味
dbReadOnly ユーザーのRecordsetオブジェクトの変更を拒否する (ODBCDirectワークスペースの既定値)
dbPessimistic 排他的ロックを行います。(Editメソッドによってページをロックする。Jet ワークスペースの既定値)
dbOptimistic 共有的ロックを行います。(Updateメソッドを実行時にロックする)
dbOptimisticValue 共有的同時実行を行う(ODBCDirect ワークスペースでのみ使用可)
dbOptimisticBatch バッチ更新を可能にする (ODBCDirect ワークスペースでのみ使用可)

○関連項目

  1. CurrentDbメソッド(DAO)
  2. OpenRecordsetメソッド(DAO)
  3. EOFプロパティ

事例 )DAOを用いて、売上金額フィールドの件数と累計額を求める

DAOを用いて、売上金額フィールドの件数と累計額を求めます。

  1. 非連結フォームを作成します。
  2. 実行するコマンドボタンを新規作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   Dim db As DAO.Database
   Dim rs As DAO.Recordset
   Dim lngTotal As Long
   Dim i As Long

   Set db = CurrentDb
   Set rs = db.OpenRecordset("当年度取引先別売上げ", dbOpenTable)

   Do Until rs.EOF
      lngTotal = lngTotal + rs!売上金額
      i = i + 1 '--- A
      rs.MoveNext
   Loop

   MsgBox "取引件数 : " & i & "件, 売上げ総額 : \" & Format(lngTotal, "#,0")

   rs.Close: Set rs = Nothing
   db.Close: Set db = Nothing

End Sub
解説
  1. 変数iに1を加算し、件数を求めます。

動作確認

  1. フォームをビューモードで開きます。

  1. [合計金額の表示] コマンドボタンをクリックします。
  2. 取引件数、売上げ総額がメッセージボックスに表示されます。

ページの先頭へ 前ページへ戻る


RecordSetオブジェクトを作成する方法 : VBAのTips解説


 

-Microsoft Access Club-

アメリカ合衆国やヨーロッパのデータセンターからcPanelレンタルサーバーをご提供します。お支払いは日本国内の銀行振込で...。1ヵ月契約からOKです。
アメリカ合衆国やヨーロッパからcPanelレンタルサーバー。
お支払いは日本国内の銀行振込。
最短契約期間は1ヵ月契約からOKです。