Can you use case
expressions in Access? I'm trying to determine the max date form 2 columns but keep getting syntax errors in the following code:
CASE
WHEN dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date]
THEN dbo_tbl_property.LASTSERVICEDATE
ELSE Contour_dates.[Last CP12 Date]
END AS MaxDate
There is no case statement in Access. Instead you can use switch statement. It will look something like the one below:
switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date],dbo_tbl_property.LASTSERVICEDATE,dbo_tbl_property.LASTSERVICEDATE <= Contour_dates.[Last CP12 Date],Contour_dates.[Last CP12 Date])
For further reading look at: http://www.techonthenet.com/access/functions/advanced/switch.php
Or for case function implementation example in VBA:
http://ewbi.blogs.com/develops/2006/02/adding_case_to_.html
Regards, J.
FWIW - IIF is a drag, and the switch solution doesn't seem valid for SQL (I may have done something wrong). I entered the values that Fionnuala offered into a new table named AccessObjectXref:
Then used the following SQL to create a list of object names and their counts. Obviously you could include every record if you wanted:
I got the list of object types from: Meaning of MsysObjects values
You can use the
IIF()
function instead.condition
is the value that you want to test.valueiftrue
is the value that is returned if condition evaluates to TRUE.valueiffalse
is the value that is returned if condition evaluates to FALSE.There is also the
Switch
function which is easier to use and understand when you have multiple conditions to test: