1

私は MS Access に非常に慣れていませんが、しばらくの間 DB で (大まかに) 作業を行っています。メンバーシップを追跡する DB があります。そこにすべてのメンバー情報を含むテーブルがあります。新規および現在の顧客が追加されるか、今年の支払いが行われると、情報が「PaidYear」列に適用されます。何年も前から、現在の年のメンバーを一覧表示するクエリを追加し、クエリの出力を表示するレポートを追加しています。

アクティブな年と、都市、会社名、電話番号などの他のオプションを (ドロップダウンを使用して) 選択できるレポートを作成したいと思います。これを簡単に設定する方法はありますか? 私の代替品が直感的に使用できるほど簡単でなければなりません。すなわち:

[Choose Year] のメンバー レポート <-- ドロップダウン

[都市] [会社] [電話] [オプションを選択]<--- レポートの追加オプション

私はしばらくそれをいじっていましたが、デザインをセットアップすることはできますが、機能をセットアップすることはできません. どうもありがとう!!!

4

1 に答える 1

0

ええ、レポートをフィルター処理したい場合は、少しの VBA を記述して、フィルターを使用してレポートを開くことができます (これにはパラメーター クエリを使用する必要はありません。クエリ実行レベルですが、私が気づいた限りでは、パフォーマンスは同じで、完全なクエリを実行し、実行時にレポートを開いてフィルタリングするだけです (Access は実際には舞台裏でこれを行うだけかもしれませんが、私はしません)。本当に知っています。

とにかく、それに行きましょう。これは、出発点として使用して適応できるコード スニペットです。

「レポートの実行」というボタンを作成し、それを呼び出しましょうcmdRunReport

On Clickそのボタンのイベントでは、いくつかのコードを配置します。今これを書いているところなので、構文エラーがあるかもしれません (この PC には Access がありません)。

   dim multiple as boolean
   dim filtering as string
   filtering = ""

   if me.yearDropdown is not null then
   filtering = filtering  + "[myYearField] = " & me.yearDropdown 
   multiple = true
   end if

   if me.cityDroPDown is not null then
    if multiple then
        filtering = filtering  + "AND [myCityField] = '" & me.cityDropdown & "'"
    else
        filtering = filtering  + "  [myCityField] = '" & me.cityDropdown & "'"
        set multiple = true
    end if
   end if

    if me.CompanyDropDown is not null then
      if multiple then
        filtering = filtering  + "AND [myCompanyField] = '" & me.CompanyDropdown & "'"
      else
        filtering = filtering  + "  [myCompanyField] = '" & me.CompanyDropdown & "'"
        set multiple  = true
      end if
   end if



    DoCmd.OpenReport "yourReport", acViewPreview, , filtering

これができることの基本です。構文エラーが発生し、フィルタリング文字列が正しく連結されていない (テストされていない) 場合はいくつかあるかもしれませんが、そこから始めることができます。

英語では、フィルタリングに使用するフォームのドロップダウンを確認するだけです。それらが null でないかどうかをチェックし、それらの値を「フィルタリング」文字列に連結します。この文字列は、OpenReport メソッドのパラメーターとして使用されます。

お役に立てれば。

于 2013-04-10T02:17:13.340 に答える