Hi June,
I have thought about this topic quite a bit, and I've decided to use a RESET button:
Code:
Private Sub cboODMID_AfterUpdate()
Me.cboOEMID.RowSource = " SELECT tabOEM.IDOEM, tabOEM.txtOEMName, tabProject.logRunning, tabProject.lnkODM" & _
" FROM tabOEM INNER JOIN tabProject ON tabOEM.IDOEM = tabProject.lnkOEM" & _
" GROUP BY tabOEM.IDOEM, tabOEM.txtOEMName, tabProject.logRunning, tabProject.lnkODM, tabProject.lnkOEM " & _
" HAVING (((tabProject.logRunning) = True) And ((tabProject.lnkODM) = [Forms]![frmAccount].[cboODMID]))" & _
" ORDER BY tabOEM.txtOEMName;"
'Me.cboOEMID = Me.cboOEMID.ItemData(0)
Me.cboOEMID.Requery
Me.cboProjectID.RowSource = " SELECT tabProject.IDProject, tabProject.txtProjectName, tabProject.lnkOEM, tabProject.lnkODM" & _
" FROM tabProject" & _
" WHERE (((tabProject.lnkOEM) = [Forms]![frmAccount].[cboOEMID]) And ((tabProject.lnkODM) = [Forms]![frmAccount].[cboODMID] ) And ((tabProject.logRunning) = True))" & _
" ORDER BY tabProject.txtProjectName;"
Me.cboProjectID.Requery
End Sub
Private Sub cboOEMID_AfterUpdate()
Me.cboODMID.RowSource = " SELECT tabODM.IDODM, tabODM.txtODMName, tabProject.logRunning, tabProject.lnkOEM" & _
" FROM tabODM INNER JOIN tabProject ON tabODM.IDODM = tabProject.lnkODM" & _
" GROUP BY tabODM.IDODM, tabODM.txtODMName, tabProject.logRunning, tabProject.lnkOEM, tabProject.lnkODM" & _
" HAVING (((tabProject.logRunning) = True) And ((tabProject.lnkOEM) = [Forms]![frmAccount].[cboOEMID]))" & _
" ORDER BY tabODM.txtODMName;"
'Me.cboODMID = Me.cboODMID.ItemData(0)
Me.cboODMID.Requery
Me.cboProjectID.RowSource = " SELECT tabProject.IDProject, tabProject.txtProjectName, tabProject.lnkOEM, tabProject.lnkODM" & _
" FROM tabProject" & _
" WHERE (((tabProject.lnkOEM) = [Forms]![frmAccount].[cboOEMID]) And ((tabProject.lnkODM) = [Forms]![frmAccount].[cboODMID] ) And ((tabProject.logRunning) = True))" & _
" ORDER BY tabProject.txtProjectName;"
Me.cboProjectID.Requery
End Sub
Private Sub cboProjectID_AfterUpdate()
[Forms]![frmAccount].[cboODMID].Requery
[Forms]![frmAccount].[cboOEMID].Requery
' when Project ID is update cboOEMID, cboODMID are adjusted accordingly
Me.cboOEMID.RowSource = " SELECT qryProjectOpen.lnkOEM, qryProjectOpen.txtOEMName" & _
" FROM qryProjectOpen" & _
" WHERE qryProjectOpen.IDProject =" & Me.cboProjectID
Me.cboOEMID = Me.cboOEMID.ItemData(0)
Me.cboOEMID.Requery
Me.cboODMID.RowSource = " SELECT qryProjectOpen.lnkODM, qryProjectOpen.txtODMName" & _
" FROM qryProjectOpen" & _
" WHERE qryProjectOpen.IDProject =" & Me.cboProjectID
Me.cboODMID = Me.cboODMID.ItemData(0)
Me.cboODMID.Requery
End Sub
Private Sub cmdReset_Click()
' initialize row sources for all comboboxes
Me.cboOEMID = Null
Me.cboODMID = Null
Me.cboProjectID = Null
Me.cboOEMID.RowSource = " SELECT tabOEM.IDOEM, tabOEM.txtOEMName " & _
" FROM tabOEM" & _
" ORDER BY tabOEM.txtOEMName;"
Me.cboOEMID.Requery
Me.cboODMID.RowSource = " SELECT tabODM.IDODM, tabODM.txtODMName " & _
" FROM tabODM" & _
" ORDER BY tabODM.txtODMName;"
Me.cboODMID.Requery
Me.cboProjectID.RowSource = " SELECT qryProjectOpen.IDProject, qryProjectOpen.txtProjectName" & _
" FROM qryProjectOpen" & _
" ORDER BY qryProjectOpen.txtProjectName;"
Me.cboProjectID.Requery
End Sub
Thank you very much for your support.