|
▼バリュー さん:
おはようございます。
>>1)
>一画面上で実現できないなら二画面(検索画面と入力画面)に分けても良い
>という指示もあったのですが、
>二画面に分けたら、同じ項目を使用しても構いませんか?
ここまでヘッダーを検索用に使うという前提でやってきたのでこのまま行きましょう。
もちろん別フォームやサブフォームという手段もありますが、コントロールの指定の
やり方が多少複雑になるので、まずは1つのフォームで…。
ヘッダー部と詳細部のコントロールを区別する(人間もAccessも)ために、
ヘッダー部のコントロール名は全て「検索_(アンダースコア)」をつけてみましょう。
例)
発行日 テキストボックス
↓
検索_発行日 テキストボックス
>>2)
>範囲指定にさせたいです。
>テーブルに項目を追加して作成した方が良いでしょうか
テーブルを変更する必要はないのですが、検索する際のテキストボックスが2つ
必要になりますよね? という事で
検索_開始日 テキストボックス
検索_終了日 テキストボックス
でいかがでしょうか。
>>3)
>詳細部のコンボボックスは他テーブルから表示させる形式のものなのですが、
>(入力する時の作業を軽くする為に他テーブルから表示、選択するようにして欲しい
>という指示があったので)
>よろしくなかったでしょうか?
コンボボックスでも可能ですね。
ヘッダー部のコントロールが
>>検索_開始日 テキストボックス
>>検索_終了日 テキストボックス
>>検索_実行 コマンドボタン
>>検索_発生場所 コンボボックス
>>検索_是正先 コンボボックス
>>検索_不具合 コンボボックス
として検索_実行ボタンのクリックのコードビルダに以下のコードで試してください。
Private Sub 検索_実行_Click()
'開始日と終了日が空だった場合は実行させません
If IsNull(Me.検索_開始日.Value) Or IsNull(Me.検索_終了日.Value) Then
MsgBox "開始日と終了日を入れて下さい"
Exit Sub
End If
'開始日と終了日が日付型でなかった場合は実行させません
If Not IsDate(Me.検索_開始日.Value) Or Not IsDate(Me.検索_終了日.Value) 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
|
|