2011-12-05 12 views
0

は、MS AccessのVBAで、この有効です:IIF内でIIFをコントロールソースにネストすることはできますか?

iif ([company] = "starbucks", "retail", iif ([item] <> "", "DLookup(....)", "")) 

私は上記の作品に似た何かを取得しようとしています。

+3

ネストされたIIfsは、より簡単な解決策であるという警告サインになります。 – Fionnuala

+1

@Remou:良い点。 @ブリュノ:あなたは複数の 'DLookupsを含む自分自身を見つける場合、中位の複雑なシナリオやクエリベースのアプローチの'スイッチ '機能を検討してください。 – mwolfe02

答えて

2

はい。

Jet/ACEが「式が複雑すぎます」と文句を言う前に最大IIfステートメントをネストできます。 VBA IIf機能には同様の制限はありません。

フォームのコントロールソースでこれを使用しているため、Accessでは式サービス(Jet/ACEクエリの一部であるかのように扱います)を使用してこれを評価します。適用する。私は機能として声明とVBA IIfとしてジェット/ ACE IIf呼ばことも

は注意してください。これらの用語は緩やかに使用されることもありますが、正確な意味を持っています。 Jet/ACEのIIfステートメントはtrue ternary operatorです。結局のところ、同じ名前のVBA関数よりも一般的に効率が良く、潜在的な影響を受けません。side effectsです。

関連する問題