このエントリーをはてなブックマークに追加

条件を指定して、レポートを開く。(DoCmd.OpenReportメソッド)

こちらは、コンボボックスに地域番号を入力して、「都道府県(地域別)」ボタンをクリックすると、その地域の都道府県を載せたレポートが表示されるようになっています。

フォーム

都道府県のデータが入っているテーブルには、47都道府県すべてのデータが入っていますが、「都道府県(地域別)」ボタンのクリック時にイベントプロシージャを記述することで、指定した地域のみの都道府県データをレポートに表示させるようにしています。

レポートボタンのクリック時イベントには、つぎのようにコードを書いています。

Private Sub コマンド1_Click()
DoCmd.OpenReport "R_都道府県", acViewPreview, , "地域ID=" & Me.コンボ0
End Sub

DoCmd.OpenReportメソッド」で、レポートを表示させることができます。以下は、パラメーターで、レポート名(必須),View(省略可能),フィルター名(省略可能),WhereCondition(省略可能),WindowMode(省略可能),OpenArgs(省略可能)となっています。2つ目のパラメーター「View」を「acViewPreview」にすることで、印刷プレビューモードで表示されます。ここを省略すると、規定値の「acViewNormal」が適用され、即プリンターに印刷されてしまいます。

ここでは、3つ目の「フィルター名」は省略して、4つ目のパラメーター「WhereCondition」で、条件式(文字列式)を指定しています。「”地域ID=” & Me.コンボ0」で、レポートのレコードソースであるテーブルのフィールド名「地域ID」が、「コンボ0」の値と一致するレコードという意味になります。5つ目と6つ目のパラメーターについては、省略しています。

ではここで、コンボボックスに値を入れないまま、「都道府県(地域別)」ボタンをクリックしてしまったときに、メッセージをだすように、コードを追加しておきます。

Private Sub コマンド1_Click()
If IsNull(Me.コンボ0) Then
  MsgBox "地域番号を選択、または入力してください。", vbOKOnly, "地域番号"
  Me.コンボ0.SetFocus
Else
   DoCmd.OpenReport "R_都道府県", acViewPreview, , "地域ID=" & Me.コンボ0
End If
End Sub

If ~Elseステートメントを使って、条件分岐をさせます。コンボボックスに値が無い(IsNull)ときは、メッセージボックスを表示させ、もう一度、コンボボックスにカーソルを合わせます。

メッセージボックス

それ以外、つまりコンボボックスに値が入れられたときは、「DoCmd.OpenReportメソッド」で、レポートを開きます。

レポート

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントフィード

トラックバックURL : http://gyoumuka.work/wp-trackback.php?p=2317

PAGE TOPへ戻る