質問: access2007で。 access2007で。 今access2007を使ってちょっとしたシステムを開発してるのですが、フォーム内のテキストボックスに入力した文字列と、テーブル内のデータを参照する事ってできるのでしょうか? 例えば テーブルa、フォームbとして テーブルaには 問題番号 問題文 答え 上記のフィールドがあり、 フォームb内の解答テキストボックスと、テーブルaの答えフィールド内データを参照し、 同じデータがあった場合はフォームcを開き、データがなかった場合はフォームdを開く。 このような形にしたいのですができるのでしょうか? 無知な質問で恐縮ですが、ご教授ください。
回答: できます。 クエリを使って 検索します。 select * from テーブルa、where テーブルa.答え = フォームbの回答txt です。 通常は文字列ですべて完全一致とはいかない場合が多いので = ではなく like を使ったクエリになると思います。 問題の解答ですが ラジオボタンで 4択にするほうが 検索も簡単です。 文字列での検索は 不一致になる可能性もあります。 vba で検索を行う場合は adoもしくはdao でのクエリ検索、dlookup での検索のいずれかを行うことになります。 ■ adoとdaoを使用したクエリの抽出条件式で、* と % の動きの違い http://www.nurs.or.jp/~ppoy/access/access/acm075.html ■dlookup 関数 : http://office.microsoft.com/ja-jp/access/ha012288251041.aspx フォームを開く方法 dim varx as variant varx = dlookup("[得意先名]", "得意先", "[得意先コード] = 1") if varx <> empty then docmd.openform "フォームc" else docmd.openform "フォームd" end if 上記のコードをマクロで記述することもできます。 access の マクロ を開き 同じ処理ができます。