Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


InputBoxを用いて取引先を抽出する : Access裏技Tips



印刷データを抽出する方法は、Filterの利用、パラメータの利用、クエリー内で抽出条件設定などがあります。 ここでは、InputBox関数を用いて目的のデータをフィルターする技を紹介します。

取引先を抽出する

  1. サンプルテーブル(tbl_sample)をもとにして、「取引状況一覧リスト」の 帳票レポート(rpt_sample)を作成します。
  2. レポートを開くイベントプロシージャを作成し、InputBoxで入力された値でFilter抽出します。
  3. 空データ時イベントプロシージャを作成し、存在しない値の場合は印刷を中止します。

「取引状況一覧リスト」の レポートを作成

  1. 「取引状況一覧リスト」の レポートを作成します。
  2. サンプルデータを元に、取引状況一覧リストを作成します。

レポートを開くイベントプロシージャの作成

レポートを開くイベントプロシージャを作成します。

Private Sub Report_Open(Cancel As Integer)

    Dim strMsg As String
    Dim varInputData As Variant ' --- A
    
    strMsg = "取引先を抽出する場合、0001〜0005までを入力して下さい。"

    varInputData = InputBox(strMsg) ' --- B
    
    If varInputData <> "" Then
        Me.Filter = "[取引先ID]= " & "'" & varInputData & "'" ' --- C
        Me.FilterOn = True……D
    End If

End Sub
解説
  1. 変数varInputDataをVariant型で宣言します。
    InputBox関数の戻り値は長さ0の空白("")があるのでVariant型が基本です。
  2. InputBox関数の戻り値を、変数varInputDataで受けます。
  3. Filterプロパティを用いて、変数varInputDataの値で抽出します。
  4. FilterOn(フィルタ適用)プロパティをTrueにします。
今回のおすすめポイント

文字列型の変数

Filterプロパティの式の中で変数が文字列であれば、Me.Filter = "[取引先ID]= " & "'" & varInputData & "'" のように、文字列をシングル クォーテーション(')で囲む必要があります。変数varInputDataは、必ず文字列型となります。なぜならば、テーブルフィールド取引先IDをテキスト型と定義しているからです。

空データ時イベントプロシージャの作成

空データ時イベントプロシージャを作成します。

Private Sub Report_NoData(Cancel As Integer)

    Dim strMsg As String
    strMsg = "印刷するデータがありません"
    
    MsgBox strMsg
    Cancel = True ' --- A

End Sub
解説
  1. 引数CancelにTrueを代入し、印刷を中止します。

動作確認

  1. レポートを印刷プレビューで開きます。
  2. InputBoxが立ち上がれば、取引先IDを入力し[OK]ボタンを押します。

  1. フィルターで抽出したデータだけが印刷されます。

今回のおすすめポイント

パラメータクエリー

ユーザーが抽出条件を入力する方法には、独自のダイアログボックスを表示できるパラメータクエリーを利用することもできます。

関連ページ

ページの先頭へ 前ページへ戻る

 


InputBoxを用いて取引先を抽出する : Access裏技Tips


 

-Microsoft Access Club-

アメリカ合衆国やヨーロッパのデータセンターからcPanelレンタルサーバーをご提供します。お支払いは日本国内の銀行振込で...。1ヵ月契約からOKです。
アメリカ合衆国やヨーロッパからcPanelレンタルサーバー。
お支払いは日本国内の銀行振込。
最短契約期間は1ヵ月契約からOKです。