次の方法で共有

Access2013で『フィルタの実行』時にWhere条件式に式を代入しても、結果が表示されない。

Anonymous
2014-08-15T05:37:10+00:00

式の設定がよく分からないので、教えてください。

例えば、西暦下2桁+"-"+3ケタ連番(14-001等)で構成される「受付番号」を含む一群のデータがあります。

これらを一覧表示(表形式)するフォームを作成しています。

フォーム上に西暦が入ったコンボボックスを配置し、あるボタンを押すと「受付番号」をキーにしてフィルタを実行するようにし、フィルタのWhere条件式には表示されている西暦の下2桁から前述の受付番号を生成して代入するようにしています。

≪マクロ≫ (フィルタの実行では当該西暦1年分の受付番号の抽出を行う)

フィルタの実行

  フィルタ名  空白

  Where条件式  [クエリ名]![受付番号] = 'Like Right([フォーム名]![コンボボックス名],2)' & "*" 

  コントロール名 空白

ここで、上記の記述の他、シングルクォーテーションやダブルクォーテーションの位置(括る範囲)をいろいろ変えてみましたが、実行結果はフォーム上に何も表示されません。

どのように記述したら、正しくフィルタが実行され、結果が表示されるのでしょうか?

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2014-08-18T02:51:17+00:00

コンボボックス名の前に、Forms![フォーム名]! を付けてください。

Where条件式 [一覧表示クエリ(受付番号順)]![受付番号] Like Right(Forms![フォーム名]![対象年度],2) & "*"

当然、フォーム名は実際のフォームの名前にしてくださいね。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-08-18T06:02:49+00:00

    hatena19 様

    ありがとうございます。

    できました!

    マクロビルダーでは、自身のフォーム上のコントロール類を指定すると、フォーム名が入らないので、その記述に何も疑問を持っていませんでした。

    やはり、きちんと指定しなければならないのですね。

    勉強になりました。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-08-18T01:30:31+00:00

    hatena19 様

    返信、ありがとうございます。返信が遅くなり、申し訳ありません。

    教えていただいた式を書き込みましたが、「パラメータの入力」ダイアログが出てしまいます。

    Where条件式 [一覧表示クエリ(受付番号順)]![受付番号] Like Right([対象年度],2) & "*"

    フィルタの実行はオプショングループで配置したトグルスイッチを押すことで開始され、同一フォーム上に配置されたコンボボックス(対象年度)にある数値(西暦4ケタ)を参照して導くように考えています。

    フィルタを実行すると表示されるダイアログ(パラメータの入力)に該当する西暦(4ケタ)を手動で入力すると、結果は表示されます。

    クエリ上で、正しく認識されていないような気がするのですが…。

    この考え方(やり方)が間違っているのでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-08-15T07:32:57+00:00

    下記の式でどうでしょうか。

    [受付番号] Like Right(Forms![フォーム名]![コンボボックス名],2) & "*"

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません