Eval関数

 文字列をその内容のとおりの式(関数)とみなし、評価(実行)結果を返します。
 数値はそのまま返されます。

使用例

 説明を読んでもどういう関数なのかわかりにくいところですので、例として右のようなテーブルを作ってみます。各種の式や関数をそのまま文字列として格納しています。


 次の右のようなクエリを作ります。テーブルの文字列をそのままEval関数で囲った列(評価結果)を設けています。


 データシートビューを見ると、式や関数の評価(実行)結果が返っていることがことがわかります。単なるデータであるはずの文字列が式や関数として評価され結果が返る、というのが重要なポイントです。


 即値として実行した場合の結果をまとめると以下のようになります。

表記例出力例説明
Eval("1+1=2")-1式の評価結果がTrueの場合
Eval("Len('あいうえお')=5")-1式の評価結果がTrueの場合
Eval("100>200")0式の評価結果がFalseの場合
Eval("True")-1
Eval("False")0
Eval("1+1")2計算結果の数値はそのまま返されます
Eval("2")2半角数値は""の有無に関わらずそのまま返されます
Eval(2)2
Eval("left('あいうえお',3)")あいう関数の実行結果はそのまま返されます
Eval("2")(エラー)全角数字を直接指定するとエラーとなります
Eval("あいうえお")(エラー)式ではない文字列を直接指定してもエラーとなります

書式

Eval(評価対象)

備考

 多用する関数ではありませんが、いくつかの奇天烈な応用例があります。

www.accessdbstudy.net

www.accessdbstudy.net