質問

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]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top