Translate

ACCESSA-VBA | DLookupでテーブルから特定の値を取得する方法

ACCESSのDLookup関数でテーブルから特定の値を取得する方法




1.DLookup関数でテーブルやクエリ内を検索して値を取得する方法


概要

DLookup関数は、ACCESS固有の関数で、テーブルやクエリーからデータを検索して取得する為の関数。
ExcelにもLookup関数があるが、使い方が違うだけで機能自体はほぼ同じで、検索対象から検索文字にヒットした検索結果を取得出来る。
ExcelのLookupと違うところは、検索条件がもう少し細かく指定出来る。

メリット・デメリット

メリット
  • SQLを書かなくても簡単にデータが取得できる。
  • テーブルからだけじゃなく、もう少し条件を絞ったクエリーからもデータが取得できる。
  • 完全一致だけじゃなく、あいまい検索も可能
デメリット
  • DLookupは、ACCESS専用の関数である為、EXCELのVBAでもコードを再利用したい場合は、EXCELのマクロでも利用できるように書き直す必要がある。

使い方

Private Sub btnSearch_Click()

Dim CommodityCode As String
Dim CommodityName As String

CommodityCode = DLookup("[商品コード]", "[商品マスター]", "[商品名] LIKE '*" & txtCommodity.Value & "*'")-1
CommodityName = DLookup("[商品名]", "[商品マスター]", "[商品コード] = '" & CommodityCode & "'")-2

Dim ITM As ListItem

Set ITM = lvView.ListItems.Add(, , CommodityCode)
ITM.SubItems(1) = CommodityName

End Sub

-1 -> DLookup関数で、[商品マスター]テーブルから、[商品名]をLIKE(ライク)であいまい検索し、[商品コード]を取得している。
-2 -> DLookup関数で、-1で取得した商品コードを使って、[商品マスター]テーブルから、[商品コード]を完全一致で検索し、正式な[商品名]を取得している。





このブログの人気の投稿

VBAのADOで「パラメーターが少なすぎます。xを指定してください。」と表示された場合の原因

ACCESSでバーコードスキャンしたら自動でイベントを起こす方法

PostgreSQL 11 でpg_dumpallを使ってバックアップしたデータをリストアするとき文字化けの対処法

ACCESSのVBAを実行するとACCESSが強制終了する事がある

VBSでマクロの実行時に警告を非表示にする方法

ACCESSのVBAでADOを利用したバインド変数を利用したデータベース連携方法

ACCESSでバーコードをスキャンして登録更新する簡単なサンプル

pgAdmin 4が遅いのは仕方がない | PostgreSQL things.

ACCESSのVBAでリストビュー(ListView)を使う為の設定 | Office365

ASP.NETのでクライアント証明書を使ったログイン認証を行う方法