Sam Summers
Registered User.
- Local time
- Today, 17:37
- 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
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