このエントリーをはてなブックマークに追加

Access DCount関数

こちらは、Accessで作成した、データ入力用のサンプルフォームです。DCount関数を使って、業者コードと日付ごとをひとまとまりとして、ページ番号を振っていくようにします。

フォーム

DCount関数

指定したテーブルまたはクエリの特定のフィールドのレコード数をカウントします。

<構文> DCount(式,定義域[,抽出条件])
<構文(英語表記)> DCount(expr,domain[,criteria])
引数 内容
expr/式(必須) 対象となるデータのあるテーブルやクエリのフィールド名を表す文字列式、または、そのフィールドを使用して演算を実行する式を指定します。テーブルのフィールド名やフォームのコントロール名、定数、関数を使用した演算式などを指定できます。
domain/定義域(必須) 定義域(レコードセット)を表す文字列式を指定します。テーブル名またはクエリ名が指定できます。
criteria/抽出条件(省略可) 集計の対象となるデータの範囲を指定する文字列式を指定します。たとえば、抽出条件SQLのWHERE句を指定できます(WHEREは省略します)。
(Access関数辞典より)

コードの記述

入力フォームの[業者ID]コンボボックスと、[txt日付]テキストボックスにデータを入力したあと、[txt日付]のフォーカス喪失後イベントにコードを記述します。

Private Sub txt日付_LostFocus()
Dim cJkn As String
Dim pCnt As Integer

DoCmd.RunCommand acCmdSaveRecord
cJkn = "業者ID = '" & 業者ID & "' and 日付 = #" & txt日付 & "#"
pCnt = DCount("ID", "T_main", cJkn)
If IsNull(Me.テキスト3) Then
    Me.テキスト3 = pCnt
End If

Me.sub.SetFocus
Me.sub.Form.cmd担当.SetFocus

End Sub
  1. DCount関数の抽出条件を格納する変数cJknをString型で宣言します。
  2. DCount関数の戻り値を格納する変数pCntをInteger型で宣言します。
  3. [業者ID]と[txt日付]に入力したあと、DoCmd.RunCommand acCmdSaveRecordを使って、今入力しているレコードを保存します。
  4. 抽出条件に、レコードの業者IDフィールドと日付フィールドの値がフォームの[業者ID]と[txt日付]の値と一致するレコードを指定して、変数cJknに格納します。
  5. DCount関数でテーブルT_mainのIDフィールドの数を抽出条件をcJknに指定して、変数pCntに格納します。
  6. Ifステートメントを使って、ページ番号を表示する[テキスト3]がNullの時、変数pCntの値を[テキスト3]に代入します。
  7. 最後に、フォーカスをサブフォーム[sub]の担当入力ボタン[cmd担当]に移します。

ポイント

ここでは、業者IDと日付を指定したレコード数をDCount関数で取得して、その値をページ番号に充てています。

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=1268

PAGE TOPへ戻る