![ACCESS クエリの DlookUp 関数](https://rvso.com/image/1601175/ACCESS%20%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%AE%20DlookUp%20%E9%96%A2%E6%95%B0.png)
私は、リンクされた 2 つのデータベース (アクション アイテム リストと UserInfo) で作業しています。Sharepoint サイトからアクション アイテム リストをインポートしました。
私は、条件 [名前を入力してください] に一致する「アクション」のみを表示しようとしています。そのために、2 つのデータベースの関係を確認したところ、「Owner.Value」(「アクション アイテム リスト」データベースのテキスト属性) が「ID」(UserInfo データベースの外部キー) に接続されていることがわかりました。期待どおりの結果を得るために、クエリを実行して自分の名前を入力しましたが、次のエラーが発生します。
誰かが私を助けてくれるかもしれません。あなたの専門知識に頼っています。ご協力をよろしくお願いします!
答え1
まず、式を修正しますDLookup
。条件はテキスト フィールド ( Name
) の値をフィルター処理するため、フィルターに使用する値は一重引用符または二重引用符で囲む必要があります。そうしないと、結果は次のようになります。
Name = Thomas Orvain
結果の SQL では、 と は別々のフィールドとして扱われますThomas
。Orvain
これを解決するには、式を次のように変更しますDLookup
。
DLookup("Name", "UserInfo", "Name = '" & [Enter your name] & "'")
しかし、テーブルとテーブルINNER JOIN
の間にはすでに構築されているので、式は次のようになります。Action Items List
UserInfo
DLookup
全く必要ありません。
代わりに、選択基準をフィールドに直接適用できますName
。たとえば、次のコードをクエリの SQL ビューにコピーします。
select
[Action Items List].Action,
[Action Items List].Status,
[Action Items List].Owner.Value
from
[Action Items List] inner join UserInfo on
[Action Items List].Owner.Value = UserInfo.ID
where
UserInfo.Name = [Enter your name]