I am attempting to make a multiselect list box where I can report out more than 1 selection at one time. Where I select 1 or multiple I get a form devoid of data.
Field_Name Row Source
SELECT DISTINCT Field.Field_Name, Field.Field_ID
FROM Field
WHERE (((Field.Field_ID)<>0))
ORDER BY Field.Field_ID;
Form VBA Code:
Code:
Option Explicit
Private Sub Cancel_By_Field_Report_Click()
DoCmd.Close acForm, "Select Field"
End Sub
Private Sub Open_By_Field_Report_Click()
Dim oItem As Variant
Dim sTemp As String
Dim iCount As Integer
sTemp = Nz(Me![My_Field].Value, " ")
iCount = 0
If Me![My_Field].ItemsSelected.Count <> 0 Then
For Each oItem In Me![My_Field].ItemsSelected
If iCount = 0 Then
sTemp = sTemp & Me![My_Field].ItemData(oItem)
iCount = iCount + 1
Else
sTemp = sTemp & "," & Me![My_Field].ItemData(oItem)
iCount = iCount + 1
End If
Next oItem
Else
MsgBox "Nothing was selected", vbInformation
Exit Sub
End If
Me![Field_Name].Value = sTemp
DoCmd.OpenReport "By Field Report", acViewReport, "", "", acNormal
DoCmd.Close acForm, "Select Field"
End Sub
By Field Query:
Code:
[SELECT Field.Field_ID, Field.Field_Name, System.[System Name], Nomenclature.Nomenclature, Component.Component, Version.Version, Accreditation.[ACC_#], Accreditation.Type_ACC, Accreditation.Accred, Accreditation.Expires, Accreditation.Compliance, Main.Hold
FROM Version RIGHT JOIN (System RIGHT JOIN (Nomenclature INNER JOIN (Field INNER JOIN (Component INNER JOIN (Accreditation INNER JOIN Main ON Accreditation.Accred_ID = Main.[ACC_#]) ON Component.Comp_ID = Main.Comp_ID) ON Field.Field_ID = Main.Field_ID) ON Nomenclature.Nomen_ID = Main.Nomen_ID) ON System.SYS_ID = Main.SYS_ID) ON Version.Vers_ID = Main.Vers_ID
GROUP BY Field.Field_ID, Field.Field_Name, System.[System Name], Nomenclature.Nomenclature, Component.Component, Version.Version, Accreditation.[ACC_#], Accreditation.Type_ACC, Accreditation.Accred, Accreditation.Expires, Accreditation.Compliance, Main.Hold
HAVING (((Field.Field_Name) Like [forms]![Select Field].[Field_Name] & "*"))
ORDER BY Field.Field_ID;