フォームヘッダー上で、(指定月日)の名前をつけてあるテキストボックスに、(月日)を入力し、コマンドボタンの(月日抽出)をクリックして、該当するデータがあれば、フォーム詳細で該当するレコードが抽出されるようになっています。
また、(月日)を入力せずに月日抽出ボタンをクリックすると「日付が未入力です」までのメッセージを出すことはできます。該当するレコードがない場合「該当するデーターはありません」のメッセージを出すには、下記の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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
クエリ実行結果0件の場合のフォーム展開中止とメッセージ表示
Access(アクセス)
-
フィルタ後のフォームの件数の取得の仕方
Access(アクセス)
-
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
-
4
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
5
検索で該当なしの場合
Access(アクセス)
-
6
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
7
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
8
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
9
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
10
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
11
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
12
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
13
access マクロでのフィルタの解除の方法
Access(アクセス)
-
14
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
15
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
16
「年」と「月」だけの日付の表示方法
Excel(エクセル)
-
17
ACCESSでフォームを使って、テーブルを参照、データ入力、データ更新をしたいのです
Access(アクセス)
-
18
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
19
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
20
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数字以外の入力をエラーにする...
-
EXCEL VBAで、URLを入力して、...
-
初歩的な事だと思います。 Sub...
-
アルファベットGの小文字の入力
-
エクセルVBA テキストボックス...
-
入力フォームへ、データを自動...
-
VBAで質問があります
-
「イ分」・・・フンという文字...
-
テキストボックスの番号を使っ...
-
VBAの質問になります メッセー...
-
入力フォームの値をQRコードで...
-
<input>のstep属性に違反する入...
-
EXCEL VBA で指定した範囲に入...
-
textareaについて
-
VBA エクセル 条件の設定
-
エディットボックスの入力制限...
-
VBA R1C1形式で変数の入力について
-
スマートフォン向けフォームで...
-
ACCESS テキストボックスの入力...
-
教えて!全角文字「μ」の半角
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
VBAで質問があります
-
Windowsのアプリ開発ってなんの...
-
Excel-VBAでInputBox+Pulldown...
-
EXCEL VBA で指定した範囲に入...
-
初歩的な事だと思います。 Sub...
-
数字以外の入力をエラーにする...
-
VBAでInputBoxの再入力をさせる...
-
入力フォームの値をQRコードで...
-
excel vba でユーザーフォーム...
-
TextBoxから数字が文字...
-
VBAの質問になります メッセー...
-
DataGridViewの桁数制限に関して
-
accessで該当するレコードがな...
-
c#でTextBoxの入力制限
-
VBA R1C1形式で変数の入力について
-
エディットボックスの入力制限...
-
「イ分」・・・フンという文字...
-
アルファベットGの小文字の入力
おすすめ情報