its because you are viewing in datasheet or continuous form - the rowsource is not conditional for each row.



To get round the problem

1. set the cboemployees rowsource to SELECT tblEmployees.EmployeeID, tblEmployees.EmployeeName FROM tblEmployees as the default

2. in the cboemployees enter event put

cboemployees.rowsource=cboemployees.rowsource & " LEFT JOIN (SELECT EmployeeID FROM tblBlacklistedEmployees WHERE ClientID=[cboClients]) As BL ON tblEmployees.EmployeeID = BL.EmployeeID WHERE BL.EmployeeID is null"

3. in the cboemployees exit event put the following to 'restore' the full list.

cboemployees.rowsource="SELECT tblEmployees.EmployeeID, tblEmployees.EmployeeName FROM tblEmployees"

you will also probably want to put in the cboclient control after update event something like

cboemployees=0

so users have to select a new employee

Other thing to consider is when you add a new employee to a blacklist that you have a routine to check that that employee doesn't have any future appointments with the relevant client