前の月のデータとデータを一致させるためのDLookUp


0

ここでの長い話は、私は日付データへのインセプションを持っているということです、そして、私はこの論理を使用してそれから月から日付データを抽出したいです: ITD_Current - ITD_Previous = MTD_Current。私は何かのことを考えている DLookUp これで助けることができます。

データの構造は次のようになります。

Company Code | Store Number (multiple store # to a company code) | Date (yyyymm) | ITD Data

私の最初の実験は、を使用して各行に固有のキーを作ることでした。

 [Company Code] & [Store Number] & [Date]

これをKey_Currentと呼びました。それから私は作りました Key_Previous 上記とまったく同じ形式になりますが、日付の値は1か月前に戻ります。それから私はこのようなDLookUp関数を作成しに行きました:

DLookUp("[ITD Data]","Table",[Key_Current]=[Key_Prev])

これは明らかに機能していませんが、うまくいけば、誰かが私がやろうとしていることを理解することができます。私が必要としているのは、日付列への前のインセプションを引き込み、それを現在のインセプション列へのマッチングと一致させることです。それから式を拡張して、前のものから現在のものを差し引くことができます。

これについて何か考え?ありがとうございました!

回答:


0

条件は文字列として渡す必要があります。

DLookUp("[ITD Data]", "Table", "[Key_Current]=[Key_Prev]")

ただし、現在のキーが前のキーと同じになることはないため、これによって結果がもたらされることはありません。

シンプルな DLookUp それは単一行でのみ動作するので、動作しません。現在のデータのキーを知っていると仮定すると、これを行うことができます。

Dim currentKey As String, prevKey As String

currentKey = <somehow get this key>
prevKey = DLookUp("[Key_Prev]", "Table", "[Key_Current]='" & currentKey &"'")
prevData = DLookUp("[ITD Data]", "Table", "[Key_Current]='" & prevKey &"'")

おそらくそれをするよりよい方法は問い合わせをすることです。

SELECT A.*, A.[ITD Data] - Nz(B.[ITD Data]) As MTG_Current
FROM
    Table A
    LEFT JOIN Table B
        ON A.[Key_Prev] = B.[Key_Current]

テーブルをそれ自体に結合して、異なる行を比較できます。


これを達成するための最良の方法は間違いなくクエリでした。なんて優雅な解決策でしょう。ありがとうございました。
gflowers
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.