>元のテーブルにはそれらの製造番号はあります。
これを製造番号でグループ化したもの(すべての貸出機の製造番号をリストにしたもの)をテーブルBとします。(別にクエリBでもかまいません)そして2番目のクエリを以下のように作り変えてください。
SELECT テーブルB.貸出機製造番号, テーブルA.貸出機管理ID, テーブルA.貸出日, テーブルA.返却日
FROM テーブルB LEFT JOIN (クエリA LEFT JOIN テーブルA ON クエリA.貸出機管理IDの最大 = テーブルA.貸出機管理ID) ON テーブルB.貸出機製造番号 = クエリA.貸出機製造番号;
一回も貸し出したことがないものは貸出機管理ID以下がブランクで表示されるはずです。
テーブルのリレーションシップが理解できれば簡単な問題ですので、そのあたりを勉強されると良いと思います。
[イミディエイト]
? XferKNumber("99AAA")
1999AAA
? XferKNumber("00BBB")
2000BBB
? XferKNumber("01CCC")
2001CCC
Public Function XferKNumber(ByVal KNumber As String) As String
Dim S As String
If Left(KNumber, 2) < "20" Then
S = "20"
Else
S = "19"
End If
XferKNumber = S & KNumber
End Function
機械の並び替え部分はミス!よって訂正!
仕様に矛盾があります
貸し出し簿から抽出しても
>まったく貸出したことがない機械もあります。
これは抽出できませんよ
貸し出し簿から分かるのは貸し出し中か貸し出したことがあるという情報だけです
>製造番号ごとに貸出中なのか待機中なのか一目でわかればいいのです。
これをやるには全貸出機のテーブルが必要です
その中から貸し出し中以外を抽出してやれば
待機中の一覧が得られますね
貸出機テーブルから作ったクエリの製造番号の抽出条件欄に
In (select 貸出機製造番号 from テーブルA where 返却日 is null)
お礼
やっほー、できました!! ようやく望みのものが出来ました。 作成手順、そしてテーブルのリレーションシップとクエリの結合の種類を理解していれば解決できた問題だったんですね。 2ヶ月近くも悩みつづけていたことから解き放されて、と~ってもうれしいです☆ これでようやくじっくりと他のことも勉強することができます。私にはまだまだ基本を学ぶことが大切なようなので、しっかり身に付けたいと思います。 何度も教えていただいて、ありがとうございました。 本当に助かりました。 今後ともよろしくお願いいたします!