-PR-
解決済み

自作関数でIF文はできないのか?

  • 暇なときにでも
  • 質問No.5373030
  • 閲覧数101
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 98% (600/611)

SELECT テーブル1.ID, IIf([テーブル1]![ID]=1,"1です","1ではない") AS 1かどうか
FROM テーブル1;
というクエリ1を作成しました。

「IIf([テーブル1]![ID]=1,"1です","1ではない")」の部分を
vbaのFunctionプロシージャーで記述したいのですがうまくできないです。

標準モジュールに
Public Function IF文()
IF文 = "IIf([テーブル1]![ID]=1,""1です"",""1ではない"")"
End Function
を作成し、

クエリ1のSQL文を
SELECT テーブル1.ID, IF文() AS 1かどうか
FROM テーブル1;
としたら
「1かどうか」フィールドには関数式の結果ではなく、
関数式が文字列として表示されました。
(添付参照)

訳あって、
SQL文の一部をvbaで記載したいのですが上記のようなことは不可能でしょうか?
ご教授よろしくお願い致します。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル14

ベストアンサー率 58% (1093/1860)

>関数式が文字列として表示されました。

関数式を返すFunctionにしているからです。
関数式ではなく、評価結果を返すようにしてください。

Public Function IF文(ID As Variant) As String
IF文 = IIf(ID = 1, "1です", "1ではない")
End Function

使い方は、
SELECT テーブル1.ID, IF文(テーブル1.ID) AS 1かどうか
FROM テーブル1;
お礼コメント
quygquygqu

お礼率 98% (600/611)

なるほど!うまくできました。
有難うございます。
投稿日時 - 2009-10-17 08:58:28
このQ&Aのテーマ
このQ&Aで解決しましたか?
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

-PR-
ページ先頭へ