こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Microsoft AccessでStringの内容を実行したい。

Microsoft AccessでStringの内容を実行したい。

Accessで文字列として「(a+b)*c」とか条件式「(a+b)*c>100 or d="abcde"」が入っているテーブルのフィールドがあります。
それを取り出して実際に演算や条件式が真か偽かを確認したりしたいと思っています。

a,b,c,dなどの変数部分は、実際はもっと普通使わないような名前(前後に{}を入れたりする等)にして実際の文字列や数値に文字列置き換えをすることを考えていますが、実行する方法がよくわかりません。
Accessにはこういうことをするための便利な機能などは無いでしょうか?
イメージ的にやりたいことはexcelで式をセルに入れると値が出てくるというようなことをAccessでやりたいという感じです。
できるならば、Accessの関数も入れられると非常に良いですが、とりあえず条件式と算術演算子が使えればいいと思っています。

一文字ずつ=,<,>,+,-,*等かどうか確認してif文でなどを駆使して処理として再現するしかないのでしょうか?
また、この一文字ずつ解析しかない場合、何かいいサンプルなどを紹介しているサイトなどありましたら教えていただけるとありがたいです。

環境はwindowXP,Access2000ですが、最新なら可能ということであればAccess2007or2010の導入も検討します。

投稿日時 - 2010-09-10 20:34:54

QNo.6172891

困ってます

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

Eval関数で
debug.Print eval("sqr(2)+2^2+cos(30)-(2+3)")
debug.Print eval("1=2")
とか
debug.Print replace("google","goo","an")
は。

投稿日時 - 2010-09-10 23:30:34

お礼

回答ありがとうございます。
Accessにはこんな便利な関数があるんですね。
これで数値式と条件式は何とかなりそうです。

投稿日時 - 2010-09-11 07:55:09

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

SQL文でこんなの書いたら計算できました。

SELECT (a+b)*c FROM(SELECT 3 as a, 4 as b, 5 as c FROM DUAL);
※ DUAL という1レコードだけのテーブルを作って実行しました。

SQL文は文字列の編集で作れます。ご参考まで。

投稿日時 - 2010-09-10 22:07:01

お礼

回答ありがとうございます。
この方法なら、SQL関数であれば関数を使用することも可能ですね。
参考にしてプログラム作成をしようと思います。

投稿日時 - 2010-09-11 07:56:19