ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Microsoft Office Accessコミュのiff関数とDlookup関数について

  • mixiチェック
  • このエントリーをはてなブックマークに追加
iff関数とDlookup関数を一緒に使いたいのですが、何回やってもだめです。

なにをやりたいかどういうと

T-資格IDの中に資格名があります。
それを抽出したいです。

フォームに資格IDテキストボックスを作り、後ろに資格名が自動的に出るようにしたい。もし資格IDが空欄なら空欄にしたい。

=IIf(Nz([資格ID])="","",DLookUp("[資格名]","[T-資格ID]","[資格ID] = " & "'" & [資格ID] & "'")

#Name?と表示され、うまくできませんでした。

どうやったらよろしいでしょうか?

コメント(16)

こんにちは。

閉じる ) が足らないのでは?

あと、私が正しいかは調べないと分かりませんが、いつも記述しているスタイルならば、
=IIf(Nz([資格ID])="","",DLookUp("[資格名]","T-資格ID","[資格ID] = '" & [資格ID] & "'"))
となります。
ろろっちさん
こんにちは

上のコメントに ) 一つ書き忘れました、実際はちゃんと最後に))で閉じてます。
"[資格名]"→ "資格名"
"[T-資格ID]"→"T-資格ID"
"[資格ID] = →"資格ID =

じゃないかな?
りんくすさん
だめでした。
指定した式の構文が正しくないと涙
Nz([資格ID])="" これおかしいよね。

isnull([資格ID]) または isnull([資格ID])=true じゃない?

[資格ID]が"" の時ならNzいらないよね?




別の方法ですが、簡単な方法を紹介します。
資格IDをコンボックスにする方法です。
この方法は資格IDのチェックも出来ます。

サンプル画面をご覧ください。

レポートでも同じ方法で処理出来ます。
レポートの場合は、レポートに表示する資格IDはテキストボックスで
非表示で資格IDのコンボボックスをもう一つ作ります。
資格名は、資格IDのコンボボックスから.Columnで表示します。

ご参考まで
BASS-MANさん

今の方法でやってみましたが、だめです。

すみません、要領がわるくて、どうしてなのかな?
>リンクス

nzでNullを空文字にしてるから、Nullチェックと空文字チェックをひとつにまとめて
いるということではないかと思います。

間違っているかもしれませんが、[資格ID]がFormのコントロールとして
見られていないのかもしれません。

資格IDの値を取得するところで、Forms![フォーム名]![資格ID]のように
指定してみてはどうでしょうか。
魏 ��さんへ

画面が小さくて内容がつかめません。
詳細な画像でアップして下さい。アップ後の画像の確認もお願いします。

●資格IDの値集合ソースに SELECT [T_資格].[資格ID], [T_資格].[資格名] FROM T_資格; が入力されていますか?
●資格名のコントールソースに =[資格ID].Column(1) が入力されていますか?
●それと資格名ではなく、資格略名ですか?
追加です。

資格IDコンボボックスの列数を2にして下さい。
こんにちは
横からすみません。

OS:winXP
バージョン:ACCESS2003で
試してみました。

コントロール名
テキスト0・・・資格IDを入力するテキストボックス
テキスト2・・・資格名を表示するテキストボックス
test・・・フォーム

テキスト2のコントロールソースに以下を設定
=IIf(nz([テキスト0])="","",DLookUp("商品名","商品マスタ","商品ID = '" & Forms("test").[Controls]("テキスト0") & "'"))

これでテキスト0に資格コードを入力すると
テキスト2に資格名が表示されると思います。
私の環境下では動作しました。

このサイトが参考になると思います
http://makotowatana.ld.infoseek.co.jp/access/acfctDLookup.htm
すみません。訂正です
前述の中のテーブルのフィールド名が違いますね。
正しくは↓

=IIf(nz([テキスト0])="","",DLookUp("資格名","T-資格ID","資格ID = '" & Forms("test").[Controls]("テキスト0") & "'"))
BASS-MANさん
もう一度画像をお送りいたします。
資格IDをBASS-MANさん のやりかたでやると無題のがぞうのようになります。

資格IDを無題1のように入力すると選択できるが資格名が無題3 のようになります。
私の書き込んだメッセージ通りにされてないようですね。

もう一度書きます。サンプル画面も書き直しました。
プロパティの項目名がこのサンプル画面と合っているか確認して下さい。

●資格IDの値集合ソースに SELECT [T_資格].[資格ID], [T_資格].[資格名] FROM T_資格; にする。
 実際は、SELECT [T-資格].[資格ID], [T-資格].[資格略名] FROM T-資格; ですね。
●資格名のコントールソースを =[資格ID].Column(1) にする。
●列数を2にする。<===これはされていないです。

それとcolumnが何を意味するか調べて下さい。
列数2とcolumn(1)の意味が分かります。
BASS-MANさん

ありがとうございました。BASS-MANさんのをコピーして貼り付けたらできました。
助かりました。
たっきーさん

ありがとうございます。

たっきーさんのやり方でもう一度やったらできました。

いろんなやり方があって、本当に勉強になりました。

ご回答いただいた方本当にありがとうございました。

またよろしくお願いします。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Microsoft Office Access 更新情報

Microsoft Office Accessのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング