tblLookupを変更すると、これは簡単になるはずです。
REQUEST REQUEST_TEXT
------------------------
A Approve
D Disapprove
U Unknown
次に、tblMainで、REQUESTフィールドをRequired=TrueおよびDefaultValue="U"に変更します。新しいレコードが追加されると、ユーザーがそれをAまたはDに変更しない限り、REQUESTにはUが付きます。
次に、REQUESTの2つのテーブルを結合するクエリにより、私が望むものが得られるはずです。
SELECT m.REQUEST, l.REQUEST_TEXT
FROM tblMain AS m
INNER JOIN tblLookup AS l
ON l.REQUEST = m.REQUEST;
また、2つのテーブル間に関係を作成し、ユーザーがREQUESTに「X」などの偽の値を追加しないように参照整合性を適用するオプションを選択する必要があります。
編集:tblMain構造の変更がテーブルから外れていて、Accessセッション内からこれを行っている場合は、LEFT JOINでNz()関数を使用できます。
SELECT m.REQUEST, Nz(l.REQUEST_TEXT, "Unknown")
FROM tblMain AS m
LEFT JOIN tblLookup AS l
ON l.REQUEST = m.REQUEST;
ASPなど、Accessセッションの外部からこれを実行している場合、Nz()関数は使用できません。したがって、Nz()の代わりにIIf()式を使用できます。
SELECT m.REQUEST, IIf(l.REQUEST_TEXT Is Null, "Unknown", l.REQUEST_TEXT)
FROM tblMain AS m
LEFT JOIN tblLookup AS l
ON l.REQUEST = m.REQUEST;
Edit2:Null値で直接結合することはできません。ただし、tblLookupに提案した「不明な」行では、tblMain.REQUESTにNzを含むJOINを使用できます。
SELECT m.id, m.request, l.request_text
FROM tblMain AS m
INNER JOIN tblLookup AS l
ON Nz(m.request,"U") = l.request;
REQUEST_TEXT = Unknownに対してtblLookupREQUESTをNullのままにしておきたい場合は、JOIN式の両側でNzを使用できると思います。しかし、Nullsに参加するというこの全体的な考えは、私をうんざりさせます。代わりにテーブルを修正します。