Code:
Private Sub cboItem_AfterUpdate()
If Right(Me.Caption, 4) = "ITEM" Then: Exit Sub
If conErrorTrappingOn = True Then On Error GoTo Err_cboItem_AfterUpdate
Dim db As Database
Dim rst As DAO.Recordset
Dim SQL As String
Dim i As Integer 'loop counter
'NOTE: tblItems refers to CraftedItem / tblItems_1 refers to reagent
SQL = "SELECT tblCrafts.CraftID, tblCrafts.CraftedIDLookup, tblCrafts.ReagentIDLookup, tblItems_1.InStock, tblCrafts.Qty, tblCrafts.ProfessionIDLookup, tblItems.Item, tblItems_1.Item, tblProfessions.Profession "
SQL = SQL & "FROM (tblProfessions INNER JOIN (tblItems INNER JOIN tblCrafts ON tblItems.ItemID = tblCrafts.CraftedIDLookup) ON tblProfessions.ProfessionID = tblCrafts.ProfessionIDLookup) INNER JOIN tblItems AS tblItems_1 ON tblCrafts.ReagentIDLookup = tblItems_1.ItemID "
SQL = SQL & "WHERE tblCrafts.CraftedIDLookup = " & Me.cboItem.Column(0)
SQL = SQL & ";"
Set db = CurrentDb
Set rst = db.OpenRecordset(SQL)
With rst
If (.BOF And .EOF) Then
MsgBox "Something is wrong. No reagents found.", vbCritical, "Search Failure"
GoTo Exit_cboItem_AfterUpdate
Else
.MoveFirst
Do While Not .EOF
i = i + 1
Me.Controls("txtReagent0" & CStr(i)).Visible = True
Me.Controls("txtPerCraft0" & CStr(i)).Visible = True
Me.Controls("txtExtended0" & CStr(i)).Visible = True
Me.Controls("txtInStock0" & CStr(i)).Visible = True
Me.Controls("txtReagent0" & CStr(i)) = ![tblItems_1.Item]
Me.Controls("txtPerCraft0" & CStr(i)) = Nz(!Qty)
'THIS IS THE OFFENDING LINE
'Generates Error 3265 - Item not found in this collection
Me.Controls("txtInStock0" & CStr(i)) = Nz(![tblItems_1.InStock])
.MoveNext
Loop
End If
End With