Here is the code that runs from the cbo box.
I have also inclued a screen shot.
The text field is unbound because my cbobx recordset is distinct but my table is not. So I then enter file names in the txt box, I then update all occurances of the part in the table with the entry in the txt field.
Private Sub cboParts_BeforeUpdate(Cancel As Integer)
Call LookUpPart(Me.cboProjects.Value, Me.cboParts.Value)
End Sub
Function LookUpPart(ProjectID As Long, Part As String)
Set db = CurrentDb
If Me.ckChange Then
Call ParseLitTxt(Me.txtManual.Value, ProjectID, Part)
End If
Call Parts(ProjectID, Part)
db.Close
Set db = Nothing
Me.ckChange.Value = False
End Function
Function RecordLit(ProjectID As Long, Part As String, Qty As Integer)
Dim rslit As Recordset
SQL = "SELECT tblProject.ProjectID, tblPart.Part_Number, tblPart.PartID FROM (tblProject INNER JOIN tblSkid ON tblProject.ProjectID = tblSkid.ProjectID) INNER JOIN tblPart ON tblSkid.SkidID = tblPart.SkidID WHERE (((tblProject.ProjectID)=" & ProjectID & ") AND ((tblPart.Part_Number)='" & Part & "'));"
Set rs = db.OpenRecordset(SQL)
Set rslit = db.OpenRecordset("tblPartLiterature", dbOpenDynaset)
rs.MoveFirst
Do
For x = 0 To Qty
With rslit
.AddNew
!PartID = rs!PartID
!Literature = Lit(x)
.Update
End With
Next x
rs.MoveNext
Loop Until rs.EOF
rs.Close
rslit.Close
Set rs = Nothing
Set rslit = Nothing
End Function
'ParseLitTxt: Parses the vendor data file names into individual strings
Function ParseLitTxt(LitString As String, ProjectID As Long, Part As String)
Dim x As Integer
Dim Pos As Integer
'Clears array of data
For x = 0 To 20
Lit(x) = ""
Next x
x = 0
Length = Len(LitString)
Pos = InStr(1, LitString, vbCr)
If Pos Then
Do
Lit(x) = Mid(LitString, 1, Pos - 1)
LitString = Mid(LitString, Pos + 1)
If InStr(1, LitString, vbCr) Then
Pos = InStr(1, LitString, vbCr)
Else
x = x + 1
Lit(x) = LitString
Exit Do
End If
x = x + 1
Loop Until Pos = 0
Else
Lit(x) = LitString
End If
Call RecordLit(ProjectID, Part, x)
End Function