- ベストアンサー
Access2010 DLookup関数で!店舗を管理するデータベースを作成する方法
- Access2010を使用して店舗を管理するデータベースを作成する方法を説明します。
- テキストボックスを使用して店舗NOと店舗名を入力し、DLookup関数を使用して検索する方法を解説します。
- イベントプロシージャでコンパイルエラーが発生する場合の対処方法についても説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
イミディエイトウィンドウでの、?DLookup・・・はDlookupの戻り値を表示せよ、という意味です。 Print DLookup・・・ の省略です。 一方、Private Sub s店舗no_LostFocus()では Dlookupの戻るところがありませんのでエラーになります。 通常は 変数 = DLookup("[店舗名]","[t店舗]","[店舗no]="& Forms![ft店舗seach]![s店舗no]) などと使用します。 また、ヘルプをご覧になれば 「criteria に適合するレコードがない場合や、domain にレコードが含まれていない場合は、Null 値が返されます。」 とも記載されています。 加えて、s店舗no がフォーカスを失うごとにDLookupで調べるよりも 更新後に行った方がベターかと思います。 具体的に何をしたいのかよく分かりませんが Private Sub s店舗no_AfterUpdate() dim へんすう as string If Not IsNull(s店舗no) Then msgbox nz(DLookup("店舗名","t店舗","店舗no="& Forms!ft店舗seach!s店舗no),"見つからない") へんすう = nz(DLookup("店舗名","t店舗","店舗no="& Forms!ft店舗seach!s店舗no),"見つからない") debug.print へんすう End If End Sub のような感じでは? なお、オブジェクト名やテーブル名などに、 スペースが含まれていたり、予約語である場合を除いて、[] で囲まなくとも可。 http://support.microsoft.com/default.aspx?scid=kb;ja;286335 nz関数で括るのは余計かもしれない。。
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
> DLookup("[店舗名]","[t店舗]","[店舗no]="& Forms![ft店舗seach]![s店舗no]) msgbox DLookup("[店舗名]","[t店舗]","[店舗no]="& Forms![ft店舗seach]![s店舗no]) ――にしてみるとか。説明略。
お礼
ありがとうございました。戻り値が必要な関数だったのですね!
お礼
ありがとうございます。実は、ほかにテキストボックスを作成してs店舗noを入力したときに店舗名を表示させ、店舗noがどの店舗名なのか確認するためにテキストボックスに表示をさせたかったのです。s店舗noから店舗のデータを全部表示させておりますが、新人が未だ店舗noをよく覚えていないために要請されておりました。DoCmd.SearchForRecord , , acFirst, "s店舗no Like '*" & Me!s店舗no & "*'"で処理しておりました。これでDlookup関数がわかりました。