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
- DCount関数の抽出条件を格納する変数cJknをString型で宣言します。
- DCount関数の戻り値を格納する変数pCntをInteger型で宣言します。
- [業者ID]と[txt日付]に入力したあと、DoCmd.RunCommand acCmdSaveRecordを使って、今入力しているレコードを保存します。
- 抽出条件に、レコードの業者IDフィールドと日付フィールドの値がフォームの[業者ID]と[txt日付]の値と一致するレコードを指定して、変数cJknに格納します。
- DCount関数でテーブルT_mainのIDフィールドの数を抽出条件をcJknに指定して、変数pCntに格納します。
- Ifステートメントを使って、ページ番号を表示する[テキスト3]がNullの時、変数pCntの値を[テキスト3]に代入します。
- 最後に、フォーカスをサブフォーム[sub]の担当入力ボタン[cmd担当]に移します。
ポイント
ここでは、業者IDと日付を指定したレコード数をDCount関数で取得して、その値をページ番号に充てています。
コメントフィード
トラックバックURL : https://gyoumuka.cyou/wp-trackback.php?p=1268