Microsoft Access Club >AccessTips >このページ >次頁 < 前項  サイト内検索


フォーム上のコントロールから数値データを抽出する方法:AccessTips111



テーブルデータを、フォーム上のコントロール(テキストボックス等)に入力された条件を元に取得する場合、この条件となるデータ型が、数値、テキスト、時刻型それぞれによって、抽出条件の書き方が異なってきます。

Dlookup関数の使用

Dlookup関数を用いて、テーブルデータから抽出する場合を想定します。新規テーブルを作成します。テーブル名はtbl_sampleです。社員IDフィールドは数値型、氏名フィールドはテキスト型です。

社員ID 氏名
1234 Clubくん
4321 Accessくん
3667 Benくん

先頭の氏名が検索され表示されます。

Dlookup("[氏名]","tbl_sample") 

Dlookup関数の抽出条件全体を ニ重引用符  (") で囲む必要があります。条件 が 社員IDの4321 である場合は、以下のように記述します。

Dlookup("[氏名]","tbl_sample","[社員ID] = 1234")
Functionプロシージャ

参考までに、これをFunctionプロシージャで表すと、下記のようになります。

Function AAA()

    AAA = DLookup("[氏名]", "tbl_sample", "[社員ID] = 1234")
    Debug.Print 'イミディエイトウインドウに表示します。

End Function
留意点
  • 社員IDは数値型ですから、1234 そのものを抽出条件に持ってくることが可能です。

該当データの抽出

では、今回のテーマである、フォーム上のテキストボックスデータに入力されたデータを抽出条件として、テーブルデータから該当のデータを抽出してみましょう。フォーム上にテキストボックス(名前は、txt社員IDとしています)を作成します。

更新後処理イベントプロシージャ

このテキストボックス txt社員ID の更新後処理イベントに下記のようなプロシージャを記述します。

Private Sub txt社員ID_AfterUpdate()

    Dim varmsg As Variant

    varmsg = DLookup("[氏名]", "tbl_sample", "[社員ID] = " & Me.txt社員ID)
    
    If IsNull(varmsg) Then
        varmsg = "該当者なし"
    End If

    MsgBox varmsg

End Sub
結果

下記のメッセージが表示されます。

解説

下記のような条件式を記述します。

  • DLookup("[氏名]", "tbl_sample", "[社員ID] = " & Me.txt社員ID)

この構文に使用している & は文字列を連結します。

  1. "[社員ID] = " & Me.txt社員ID  → OKです
  2. "[社員ID] = Me.txt社員ID"  → だめです
エラーメッセージ

[社員ID] = Me.txt社員ID でプロシージャを実行すると、下記のようなエラーメッセージが表示され プロシージャが停止します。

・実行時エラー2001  直前の操作はキャンセルされました。

2003/09/14

ページの先頭へ 前ページへ戻る

 


フォーム上のコントロールから数値データを抽出する方法:AccessTips111


 

-Microsoft Access Club-