互いに関連する 2 つのテーブルがあります:QUOTERun
とQUOTERunResults
. QUOTERun
特定の見積もりに必要なすべてのアイテムが含まれています。 QUOTERunResults
すべてのベンダー応答のレコードが含まれています。これらの応答を分析し、最適なベンダーを選択し、呼び出されたフィールドPreffered
を true に設定するプログラムがあります。どのベンダーも機能しない場合があります。優先としてマークされてQUOTERun
いる一致するレコードがないすべてのレコードのリストを作成する必要があります。QUOTERunResults
これが私がこれまでに持っているものです:
Set rs1 = CurrentDb.OpenRecordset("SELECT ReferenceNumber FROM [QUOTERun] WHERE RunID = " & TempRunID, dbOpenDynaset)
Set rs2 = CurrentDb.OpenRecordset("SELECT ReferenceNumber, Preffered FROM [QUOTERunResults] " & _
"WHERE RunID = " & TempRunID & " AND Preffered = True", dbOpenDynaset)
If (rs2.RecordCount = 0) Then
TempListNotComplete = "NONE OF THE VENDOR RESPONSES HAD ENOUGH STOCK. NO RECORDS HAVE BEEN MARKED AS PREFFERED."
ElseIf (rs1.RecordCount <> 0) Then
rs1.MoveFirst
Do While rs1.EOF <> True
rs2.FindFirst "ReferenceNumber = " & rs1.Fields("[ReferenceNumber]").value
If (rs2.Fields("[ReferenceNumber]").value <> rs1.Fields("[ReferenceNumber]").value) Then
If (TempListNotComplete = "") Then
TempListNotComplete = rs1.Fields("[ReferenceNumber]").value
Else
TempListNotComplete = TempListNotComplete & ", " & rs1.Fields("[ReferenceNumber]").value
End If
End If
rs1.MoveNext
Loop
End If
上記を行うより効率的な方法はありますか?