|
お世話になっております。
複数のテキストボックス(odf,odt,cm,sp)を使って条件を入力し検索を行うフォームを作っています。
odfとodtは日付を入力するテキストボックスで、betweenでodfからodtの期間を指定するようになっています。
二つとも入力が行われれば問題なく検索できるのですが、片方だけの入力だとすべてのデータが表示されてしまいます。
今、両方に日付が入力されていない場合検索が行えないようにしているのですが片方にだけ日付が入った状態で検索が押されたとき、もう一方にも同じ日付が入っているとして検索を行うのが理想です。考えてみましたがどうしたらよいかわかりませんでした。
日付の入力方法はカレンダーをクリックするor手入力(入力規則設定)です。
ご存知の方、どうぞよろしくお願いいたします。
' 入力された値のチェック
If IsNull(odf) And IsNull(odt) And IsNull(cm) And IsNull(sp) Then
' /すべて空欄のとき-「すべてのデータを表示しますか?」
a = MsgBox("すべてのデータを表示しますか?", vbYesNo)
If a = vbYes Then
DoCmd.OpenQuery "結果表示"
End If
Exit Sub
' /日付にだけ値が入力されている場合、検索に移る
ElseIf IsNull(cm) And IsNull(sp) Then
GoTo kekka
' /数字以外が含まれているとき-「数字を入力してください」
ElseIf IsNumeric(cm) = False And IsNumeric(sp) = False Then
MsgBox "数字を入力してください"
Exit Sub
' /桁数が違うとき-「有効な値であるか確認してください」
ElseIf Len(cm) <> 5 Then
MsgBox "有効な値であるか確認してください"
Exit Sub
ElseIf Len(sp) <> 3 Then
MsgBox "有効な値であるか確認してください"
Exit Sub
End If
' (Ifに該当しない場合)結果を表示
kekka:
' /片方にしか日付が入力されていない場合、検索を行わない
If IsNull(odf) = False Or IsNull(odt) = False Then
If IsNull(odf) Or IsNull(odt) Then
MsgBox "日付が片方にしか入力されていません"
Exit Sub
End If
End If
DoCmd.OpenQuery "結果表示"
|
|