MSACCESS:1対多くの関係から1つの行を選択する
-
27-10-2019 - |
質問
MS Access 2010では、TableaがTableBに1対多で、TableBがTablecに1対Manyに関連していることがあります。テーブルには、1つの数値フィールドと1つの日付フィールドがあります(ルックアップフィールドに加えて)。
FormaのDataSourceは、TableaとTableBに参加する選択クエリです。最新の日付で行のテーブルから数値フィールドを含むフォーマに、読み取り専用フィールドを1つ追加したいと思います。
これを行うための最良の方法は何ですか? TableBにフィールドを作成し、Joinクエリの実行前にその列を入力する更新クエリ(またはマクロ?)を作成する必要がありますか?
ありがとう。
解決
これはフォームであり、読み取りのみが必要なので、dlookupはそれに合うはずです。 http://support.microsoft.com/kb/208786
= DLookup("[numeric field]", "TableC", "[LookupKey] = " & [PK] & " AND TheDate = DMax(""TheDate"", ""TableC"", ""LookupKey=" & [PK] & """)")
OPによる編集には2つの問題がありますが、1つ目はそれを示唆していることです date
許容可能なフィールド名であり、予約された単語であり、使用しないでください。第二に、それはdlookupで正方形の括弧が必要であることを示唆していますが、そうではありません。
または、
Dim rs As DAO.Recordset
s = "SELECT TOP 1 c.[numeric field] " _
& "FROM TableC c " _
& "WHERE c.LookupKey= " & Me.[PK]
& "ORDER BY c.TheDate DESC"
set rs = currentDB.Openrecordset(s)
Me.SomeControl = rs![numeric field]
所属していません StackOverflow