Query parameters from 3 comboboxes

Sam Summers

Registered User.
Local time
Today, 19:23
Joined
Sep 17, 2001
Messages
939
Hi,

I've been searching for sometime an trying various options but not quite getting the right results?

I have 3 Comboboxes:

TradeName1
TradeName2
Level

And here are my conditions:

I need to display all Employees who are available (dependent on Date)
Hence DeMobDate <Date()
i.e. their de-mob date is less than todays date or there is no mob date and no de-mob date?

And, the options i want:

Either;

TradeName1
OR TradeName2
OR TradeName1 And TradeName2
OR TradeName1 And Level
OR TradeName2 And Level
OR Level
OR TradeName1 And TradeName2 And Level

Here is the SQL of my Query:

SELECT DISTINCT Employee.EmployeeID, Employee.FirstName, Employee.Surname, Employee.MobDate, Employee.DeMobDate, EmpTrade.TradeID, Trade.TradeName, Employee.National, Employee.Level, Employee.VisaStatus

FROM Trade INNER JOIN (Employee INNER JOIN EmpTrade ON Employee.EmployeeID = EmpTrade.EmployeeID) ON Trade.TradeID = EmpTrade.TradeID

WHERE (((Employee.DeMobDate)<Date()) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1]))
OR (((Employee.DeMobDate) Is Null) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1]))

OR (((Employee.DeMobDate)<Date()) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]))
OR (((Employee.DeMobDate) Is Null) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]))

OR (((Employee.DeMobDate)<Date()) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))
OR (((Employee.DeMobDate) Is Null) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))

OR (((Employee.DeMobDate)<Date()) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1] And (EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]))
OR (((Employee.DeMobDate) Is Null) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1] And (EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]))

OR (((Employee.DeMobDate)<Date()) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1]) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))
OR (((Employee.DeMobDate) Is Null) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1]) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))

OR (((Employee.DeMobDate)<Date()) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))
OR (((Employee.DeMobDate) Is Null) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))

OR (((Employee.DeMobDate)<Date()) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1] And (EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))
OR (((Employee.DeMobDate) Is Null) AND ((EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName1] And (EmpTrade.TradeID)=[Forms]![ViewJob]![TradeName2]) AND ((Employee.Level)=[Forms]![ViewJob]![Level]))

ORDER BY Employee.FirstName, Employee.National DESC;
______________________________________________________________

It nearly works but its still wrong?
I also get the number of entries of an employee if he has multiple trades?

Thank you in advance
 

Users who are viewing this thread

Back
Top Bottom