Одним из решений было бы добавить условие к запросу, который фильтрует наши записи, принадлежащие ProductionOrderNo, которые уже существуют в целевой таблице.
Это можно сделать с помощью LEFT JOIN в сочетании с WHERE ... IS NULL или с условием NOT EXISTS в коррелированном подзапросе.
Вот решение с помощью LEFT JOIN:
strSqlAddTempSpecials =
"INSERT INTO SPECIALS_Output ( ProductionOrderNo, ItemNo, Description, ExtraDescription, Quantity, ItemWeight, CreationDate, DueDate, StartingDate, Length ) " & _
"SELECT TEMP_Specials.ProductionOrderNo, TEMP_Specials.ItemNo, TEMP_Specials.Description, TEMP_Specials.ExtraDescription, TEMP_Specials.Quantity, TEMP_Specials.ItemWeight, TEMP_Specials.CreationDate, TEMP_Specials.DueDate, TEMP_Specials.StartingDate, LintelInfo.Length " & _
"FROM TEMP_Specials LEFT JOIN LintelInfo ON TEMP_Specials.ItemNo = LintelInfo.[No] " & _
"LEFT JOIN SPECIALS_Output ON SPECIALS_Output.ProductionOrderNo = TEMP_Specials.ProductionOrderNo " & _
"WHERE ((SPECIALS_Output.ProductionOrderNo IS NULL) AND ((LintelInfo.ItemType)<>" & Chr(34) & "Brick" & Chr(34) & " And (LintelInfo.ItemType)<>" & Chr(34) & "#N/A" & Chr(34) & " And (LintelInfo.ItemType)<>" & Chr(34) & "Windpost Kit" & Chr(34) & ") AND ((TEMP_Specials.Status)=" & Chr(34) & "Finished" & Chr(34) & "));"
Это вставит новые записи, игнорируя дубликаты, в отличие от подхода с уникальным индексом, который отклонит все записи, как только появится хотя бы один дубликат.