|
▼バリュー さん:
おはようございます。
いよいよ型が決まってきましたね。
フォーム(元テーブル名:テーブルA)上には
フォームヘッダーに
開始日ボックス:(テキストボックス)
終了日ボックス:(テキストボックス)
検索実行ボタン:(コマンドボタン)
発生場所コンボ:(コンボボックス)
是正先コンボ :(コンボボックス)
不具合コンボ :(コンボボックス)
を配置するとして
Private Sub 検索実行ボタン_Click()
'開始日と終了日が空だった場合は実行させません
If IsNull(Me.開始日ボックス) Or IsNull(Me.終了日ボックス) Then
MsgBox "開始日と終了日を入れて下さい"
Exit Sub
End If
'開始日と終了日が日付型でなかった場合は実行させません
If Not IsDate(Me.開始日ボックス) Or Not IsDate(Me.終了日ボックス) Then
MsgBox "開始日と終了日を正しく入力して下さい"
Exit Sub
End If
'発生場所・是正先・不具合のコンボボックスを空にします
Me.発生場所コンボ.Value = ""
Me.是正先コンボ.Value = ""
Me.不具合コンボ.Value = ""
'日付でフィルタを掛けます
Me.Filter = _
"[発行日] Between #" & Me.開始日ボックス.Value & "# AND #" _
& Me.終了日ボックス.Value & "#"
Me.FilterOn = True
'発生場所コンボの値集合ソースを設定します
Me.発生場所コンボ.RowSource = _
"SELECT 発生場所 FROM テーブルA " _
& "WHERE 発行日 Between #" & Me.開始日ボックス.Value & "# AND #" _
& Me.終了日ボックス.Value & "#"
End Sub
とりあえずここまでを。
発生場所コンボを選択すると、日付で絞られた値しか出てこなかったら成功です。
開始日ボックス、終了日ボックスはテキストボックスを使用しているため、
入力者の判断(05/01/01、05.01.01、H17.1.1など…)が働いてしますため
一工夫が必要です。過去ログやWebでお調べになってそれでも解らなければ
新しいスレッドを立てて質問してみてください。
上のコードは発生場所コンボの値集合ソースしか設定していませんが、
同じように是正先コンボ、不具合コンボにも同じように設定してみてください。
後は発生場所、是正先、不具合の各コンボボックスの更新後処理に
フィルタを掛けるコードを設定していけば良いかと思われます。
解らないところがありましたらできる限り回答致しますので
「できるところまで」自力でがんばってみてください!
|
|