Private Sub Fields1_AfterUpdate()
DoCmd.SetWarnings False
If Me.Fields1.Value = "Choose A Field" Then
Me.FieldsCombo1.Visible = False
Me.FieldsCombo2.Visible = False
Me.FieldsCombo3.Visible = False
Me.Fields2.Visible = False
Me.Fields3.Visible = False
Me.FieldsCombo1.Value = Null
Me.FieldsCombo2.Value = Null
Me.FieldsCombo3.Value = Null
Me.Fields2.Value = "Choose A Field"
Me.Fields3.Value = "Choose A Field"
Me.UNIDs.RowSource = "SELECT [UNID] FROM CYBER_ASSETS ORDER BY UNID"
Me.UNIDs.SetFocus
Me.UNIDs.ListIndex = 0
Exit Sub
End If
Me.FieldsCombo1.Visible = True
Me.FieldsCombo1.Value = Null
Select Case Me.Fields1.Value
Case "Unique ID"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [UNID] FROM CYBER_ASSETS"
Case "Company"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [COMPANY] FROM CYBER_ASSETS"
Case "Department"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [DEPARTMENT] FROM CYBER_ASSETS"
Case "Site"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [SITE] FROM CYBER_ASSETS"
Case "Room"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [ROOM] FROM CYBER_ASSETS"
Case "Device Type"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [DEVICE_TYPE] FROM CYBER_ASSETS"
Case "Device Status"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [DEVICE_STATUS] FROM CYBER_ASSETS"
Case "Identifier"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [IDENTIFIER] FROM CYBER_ASSETS"
Case "Host Name"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [HOSTNAME] FROM CYBER_ASSETS"
Case "Manufacturer"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [MFR] FROM CYBER_ASSETS"
Case "Model"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [MODEL] FROM CYBER_ASSETS"
Case "OS_Line"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [OS_Line] FROM CYBER_ASSETS"
Case "ESP"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [ESP] FROM CYBER_ASSETS"
Case "PSP"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [PSP] FROM CYBER_ASSETS"
Case "Rack"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [RACK] FROM CYBER_ASSETS"
Case "Row"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [Row] FROM CYBER_ASSETS"
Case "Brief"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [BRIEF] FROM CYBER_ASSETS"
Case "System Number"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [SYSTEM_NUM] FROM CYBER_ASSETS"
Case "Q1"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [Q1] FROM CYBER_ASSETS"
Case "Q2"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [Q2] FROM CYBER_ASSETS"
Case "Q3"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [Q3] FROM CYBER_ASSETS"
Case "Classification"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [CLASSIFICATION] FROM CYBER_ASSETS"
Case "EACMS?"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [EACMS] FROM CYBER_ASSETS"
Case "PACS?"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [PACS] FROM CYBER_ASSETS"
Case "Within ESP?"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [WITHIN_ESP] FROM CYBER_ASSETS"
Case "Access Point?"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [ACCESS_POINT] FROM CYBER_ASSETS"
Case "Serial Number"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [SERIAL_NUMBER] FROM CYBER_ASSETS"
Case "IP Address"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [IP_ADDRESS] FROM IP_ADDRESSES"
Case "MAC Address"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [MAC_ADDRESS] FROM IP_ADDRESSES"
Case "Domain Name"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [DOMAIN_NAME] FROM IP_ADDRESSES"
Case "Ticket Number"
Me.FieldsCombo1.RowSource = "SELECT DISTINCT [TICKET_NUM] FROM CHANGE_TABLE_AM"
End Select
End Sub
Private Sub FieldsCombo1_AfterUpdate()
DoCmd.SetWarnings False
Dim field1, field2, field3, sql, sqlTemp, table1, table2, table3 As String, tablePos As Integer
If Not IsNull(Me.FieldsCombo1.RowSource) Then
field1 = Me.FieldsCombo1.RowSource
field1 = Mid(field1, InStr(field1, "["), InStr(field1, "]") - InStr(field1, "[") + 1)
End If
If field1 = "[IP_ADDRESS]" Or field1 = "[MAC_ADDRESS]" Or field1 = "[DOMAIN_NAME]" Then
table1 = "IP_ADDRESSES"
ElseIf field1 = "[TICKET_NUM]" Then
table1 = "CHANGE_TABLE_AM"
Else
table1 = "CYBER_ASSETS"
End If
If Not IsNull(Me.FieldsCombo2) Then
field2 = Me.FieldsCombo2.RowSource
field2 = Mid(field2, InStr(field2, "["), InStr(field2, "]") - InStr(field2, "[") + 1)
End If
If field2 = "[IP_ADDRESS]" Or field2 = "[MAC_ADDRESS]" Or field2 = "[DOMAIN_NAME]" Then
table2 = "IP_ADDRESSES"
ElseIf field2 = "[TICKET_NUM]" Then
table2 = "CHANGE_TABLE_AM"
Else
table2 = "CYBER_ASSETS"
End If
If Not IsNull(Me.FieldsCombo3) Then
field3 = Me.FieldsCombo3.RowSource
field3 = Mid(field3, InStr(field3, "["), InStr(field3, "]") - InStr(field3, "[") + 1)
End If
If field3 = "[IP_ADDRESS]" Or field3 = "[MAC_ADDRESS]" Or field3 = "[DOMAIN_NAME]" Then
table3 = "IP_ADDRESSES"
ElseIf field3 = "[TICKET_NUM]" Then
table3 = "CHANGE_TABLE_AM"
Else
table3 = "CYBER_ASSETS"
End If
If field1 = "" Then
If field2 = "" Then
If field3 = "" Then
Me.UNIDs.RowSource = "SELECT [UNID] FROM CYBER_ASSETS ORDER BY UNID"
Exit Sub
Else
sql = "SELECT [UNID] FROM " & table3 & " WHERE " & field3 & "='" & Me.FieldsCombo3.Value & "'"
End If
Else
If field3 = "" Then
sql = "SELECT [UNID] FROM " & table2 & " WHERE " & field2 & "='" & Me.FieldsCombo2.Value & "'"
Else
sql = "SELECT [UNID] FROM " & table2 & ", " & table3 & ", WHERE " & table2 & ".[UNID]=" & table3 & ".[UNID] AND " _
& table2 & "." & field2 & "='" & Me.FieldsCombo2.Value & "' AND " & table3 & "." & field3 & "='" & Me.FieldsCombo3.Value & "'"
End If
End If
Else
If field2 = "" Then
If field3 = "" Then
sql = "SELECT [UNID] FROM " & table1 & " WHERE " & field1 & "='" & Me.FieldsCombo1.Value & "'"
Else
sql = "SELECT [UNID] FROM " & table1 & ", " & table3 & ", WHERE " & table1 & ".[UNID]=" & table3 & ".[UNID] AND " _
& table1 & "." & field1 & "='" & Me.FieldsCombo1.Value & "' AND " & table3 & "." & field3 & "='" & Me.FieldsCombo3.Value & "'"
End If
Else
If field3 = "" Then
sql = "SELECT [UNID] FROM " & table1 & ", " & table2 & ", WHERE " & table1 & ".[UNID]=" & table2 & ".[UNID] AND " _
& table1 & "." & field1 & "='" & Me.FieldsCombo1.Value & "' AND " & table2 & "." & field2 & "='" & Me.FieldsCombo2.Value & "'"
Else
sql = "SELECT [UNID] FROM " & table1 & ", " & table2 & ", " & table3 & ", WHERE " & table1 & ".[UNID]=" & table2 & ".[UNID] AND " _
& table2 & ".[UNID]=" & table3 & ".[UNID] AND " & table1 & "." & field1 & "='" & Me.FieldsCombo1.Value & "' AND " _
& table2 & "." & field2 & "='" & Me.FieldsCombo2.Value & "' AND " & table3 & "." & field3 & "='" & Me.FieldsCombo3.Value & "'"
End If
End If
End If
tablePos = InStr(sql, "CYBER_ASSETS,")
If tablePos <> 0 Then
If InStr(tablePos + 1, sql, "CYBER_ASSETS,") <> 0 Then
sqlTemp = Left(sql, tablePos - 1)
sql = Replace(sql, " CYBER_ASSETS,", "", tablePos)
sql = sqlTemp & sql
End If
End If
tablePos = InStr(sql, "IP_ADDRESSES,")
If tablePos <> 0 Then
If InStr(tablePos + 1, sql, "IP_ADDRESSES,") <> 0 Then
sqlTemp = Left(sql, tablePos - 1)
sql = Replace(sql, " IP_ADDRESSES,", "", tablePos)
sql = sqlTemp & sql
End If
End If
tablePos = InStr(sql, "CHANGE_TABLE_AM,")
If tablePos <> 0 Then
If InStr(tablePos + 1, sql, "CHANGE_TABLE_AM,") <> 0 Then
sqlTemp = Left(sql, tablePos - 1)
sql = Replace(sql, " CHANGE_TABLE_AM,", "", tablePos)
sql = sqlTemp & sql
End If
End If
sql = Replace(sql, ", WHERE", " WHERE")
Me.UNIDs.RowSource = sql
If Me.UNIDs.ListCount <> 0 Then
Me.UNIDs.Selected(0) = True
Me.UNIDs = Me.UNIDs.ItemData(0)
Call UNIDs_Click
Else
'Hide page
End If
Me.Fields2.Visible = True
End Sub