
フォームヘッダー上で、(指定月日)の名前をつけてあるテキストボックスに、(月日)を入力し、コマンドボタンの(月日抽出)をクリックして、該当するデータがあれば、フォーム詳細で該当するレコードが抽出されるようになっています。
また、(月日)を入力せずに月日抽出ボタンをクリックすると「日付が未入力です」までのメッセージを出すことはできます。該当するレコードがない場合「該当するデーターはありません」のメッセージを出すには、下記のVBAをどうすればいいのでしょうか?
dcountを使えばいいらしいのですが?わかりません。
ちなみにテーブル名は「実施T」です。よろしくお願いします。
Private Sub 月日抽出_Click()
On Error GoTo errmsg
Me.Filter = "月日=#" & Format(指定月日, "yyyy/mm/dd") & "#"
Me.FilterOn = True
Exit Sub
errmsg:
MsgBox "日付が未入力です"
End Sub
No.5ベストアンサー
- 回答日時:
以下で。
日付の未入力は個別に最初に判断します。Private Sub 月日抽出_Click()
Dim i As Long
If IsNull(Me!txt開始日) Then
MsgBox "開始日が入力されていません"
Exit Sub
End If
If IsNull(Me!txt終了日) Then
MsgBox "終了日が入力されていません"
Exit Sub
End If
'以下の i = DCount・・ はどちらでもいいです。
'i = DCount("*", "実施T", "[月日] between #" & Me!txt開始日 & "# And #" & Me!txt終了日 & "#")
i = DCount("月日", "実施T", "[月日] between #" & Me!txt開始日 & "# And #" & Me!txt終了日 & "#")
If i > 0 Then
Me.Filter = "月日 between #" & Me!txt開始日 & "# and #" & Me!txt終了日 & "#"
Me.FilterOn = True
Else
MsgBox "データがありません"
End If
End Sub
できました!
piroin654の回答がなければまだ解決できませんでした。
ご丁寧に何回も答えていただき、本当にありがとうございました。
No.4
- 回答日時:
レコード数が相当数抽出される場合が
あるかもしれないので、
Dim i As Integer
を
Dim i As Long
にしておいてください。
この回答への補足
できました!
さらにもうひとつ質問があります。
同じように(txt開始日)と(txt終了日)の名前がついたテキストボックスがそれぞれ一つずつあり、
期間抽出も行っています。開始日と終了日に月日を入力し、(抽出)の名前がついたコマンドボタンをクリックし、該当するレコードがあれば、フォーム詳細上に表示されるようにもなっています。
記述は下記のとおりです。
このケースの場合で該当するレコードがない時のメッセージを出すにはどうすればいいでしょうか?
よろしくお願いします。
Private Sub 抽出_Click()
On Error GoTo errmsg
Me.Filter = "月日 between #" & Me!txt開始日 & "# and #" & Me!txt終了日 & "#"
Me.FilterOn = True
Exit Sub
errmsg:
MsgBox "日付が未入力です"
End Sub
No.3
- 回答日時:
No3の、
「20110803 の形式で入力している場合」の
>'Me.Filter = "月日=#" & Format(指定月日, "@@@@/@@/@@") & "#"
は、正確には 指定月日 を Me![指定月日] として、
'Me.Filter = "月日=#" & Format(Me![指定月日], "@@@@/@@/@@") & "#"
ですね。
No.2
- 回答日時:
No1です。
2011/08/03の形式と20110803での形式で
入力する両方の場合を一度にいれておきます。
どちらか選んでください。
Private Sub 月日抽出_Click()
'##########2011/08/03 の形式で入力している場合##########
Dim i As Integer
On Error GoTo errmsg
i = DCount("*", "実施T", "月日=#" & Me![指定月日] & "#")
If i > 0 Then
Me.Filter = "月日=#" & Me![指定月日] & "#"
Me.FilterOn = True
Else
MsgBox "データがありません"
End If
Exit Sub
errmsg:
MsgBox "日付が未入力です"
'####################ここまで##########################
'##########20110803 の形式で入力している場合############
'Dim i As Integer
'On Error GoTo errmsg
'i = DCount("*", "実施T", "月日=#" & CDate(Format(Me![指定月日], "@@@@/@@/@@")) & "#")
'If i > 0 Then
'Me.Filter = "月日=#" & Format(指定月日, "@@@@/@@/@@") & "#"
'Me.FilterOn = True
'Else
'MsgBox "データがありません"
'End If
'Exit Sub
'errmsg:
'MsgBox "日付が未入力です"
'################ここまで###############################
End Sub
両方の形式で入力しても対応することもできますが、
そこまで凝る必要はないかもしれません。一応、上記の
記述をそのまま応用すればできます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
-
4
access マクロでのフィルタの解除の方法
Access(アクセス)
-
5
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
6
クエリ実行結果0件の場合のフォーム展開中止とメッセージ表示
Access(アクセス)
-
7
Access 実行時エラー’3079’が解決できません。
Access(アクセス)
-
8
新規レコード行を非表示にしたい
Access(アクセス)
-
9
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
10
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
11
2つ目のレコードの値を取得するには?
Access(アクセス)
-
12
Access サブフォームでの選択行の取得
その他(データベース)
-
13
アクセスVBAのMe!と[ ]
Access(アクセス)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
レポートで空データ時に印刷しない
Access(アクセス)
-
16
空白はダメというエラーの表示(アクセス)
その他(データベース)
-
17
選択クエリで空欄のテーブルがあっても表示したい
Access(アクセス)
-
18
アクセスのフィールド表示を2段にする方法・抽出の方法
Access(アクセス)
-
19
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
20
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
EXCEL VBA で指定した範囲に入...
-
教えて!全角文字「μ」の半角
-
テキストボックスの番号を使っ...
-
数字以外の入力をエラーにする...
-
CGIで ブラウザの更新ボタ...
-
HTMLで全角文字のみ入力するに...
-
「イ分」・・・フンという文字...
-
Goliveでローマ数字IIの...
-
Excel-VBAでInputBox+Pulldown...
-
DataGridViewの桁数制限に関して
-
textareaについて
-
ExcelVBAのユーザーフォームで...
-
エディットボックスの入力制限...
-
KENT-WEBのPostMailについて
-
accessで該当するレコードがな...
-
標準入力について
-
TextBoxに特定の文字のみ入力を...
-
入力フォームへ、データを自動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
初歩的な事だと思います。 Sub...
-
テキストボックスの番号を使っ...
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBA で指定した範囲に入...
-
数字以外の入力をエラーにする...
-
VBAでInputBoxの再入力をさせる...
-
DataGridView 列ごとの入力制限
-
エディットボックスの入力制限...
-
入力フォームの値をQRコードで...
-
HTMLで全角文字のみ入力するに...
-
VBA R1C1形式で変数の入力について
-
TextBoxから数字が文字...
-
アクセスのマクロ
-
excel vba でユーザーフォーム...
-
DataGridViewの桁数制限に関して
-
Geminiって、Geminiの入力フォ...
-
c#でTextBoxの入力制限
-
教えて!全角文字「μ」の半角
-
「イ分」・・・フンという文字...
おすすめ情報