• ベストアンサー

access2003 条件によって動作を変える

フォームから入力したデータによって、テーブルからレコードを検索します。 この結果、1つ以上見つかった場合と1つも無かった場合で違う動作をさせたいのですが、どうすればいいでしょうか? VBはさっぱりなのでマクロを使ったやり方を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>1つ以上見つかった場合と1つも無かった場合 DCount関数でレコードの有無は判定できますよ DCount("*","テーブル名","フィールド名=" & Forms!フォーム名!検索条件)=0

その他の回答 (2)

noname#22650
noname#22650
回答No.3

マクロの編集画面で[表示]→[条件]で条件を入れる列を出します。 1行目の条件の欄 DCount("*","Ta",""""" & [Ta].[Fi]=""" & [Forms]![Fo]![Tx] & """")=0 Ta テーブル名 Fi 検索するフィールド名 Fo フォーム名 Tx 条件が入ったテキストボックス名 アクションの欄 マクロの実行、レコードが無かった場合のマクロ 次の行の条件の欄 DCount("*","Ta",""""" & [Ta].[Fi]=""" & [Forms]![Fo]![Tx] & """")<>0 アクションの欄 マクロの実行、レコードが有った場合のマクロ 上記のマクロを保存して、コマンドボタン等で実行すると条件分岐できると思います。 Access2000で確認しました。2003で動かなかったらごめんなさい。 注) " が沢山あるのは、空白や型違いのエラーを回避するためのものです。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

マクロだけで条件式を実行させるというのをチラッと考えてみたのですが、VBAで組むよりもよっぽど難しくさらにかなり手動での操作が必要(エラーが出ても無視して続行するとか)ということになりそうです。 より高度で複雑怪奇な手法に挑戦したいという意気込みは買いますが、やはりもっと単純なアプローチを検討すべきかと思います。