Avatar billede johandysatan Novice
26. februar 2014 - 11:10 Der er 10 kommentarer og
1 løsning

Sammenligning af datoer med IIf() og CASE

Hej, jeg skal have access til at give mig den seneste dato af to mulige. Jeg har prøvet to metoder IIf() og CASE:

IIf([Change Data]![Last_Modified_Date]>[Task Data]![Modified_Date],[Change Data]![Last_Modified_Date],[Task Data]![Modified_Date]) AS [Sidst sagsbehandlet]


CASE WHEN [Change Data]![Last_Modified_Date]>[Task Data]![Modified_Date] THEN [Change Data]![Last_Modified_Date] ELSE [Task Data]![Modified_Date] END

Men det virker ikke! Nogen bud på hvad jeg gør galt?

På forhånd tak.

/Johan
Avatar billede terry Ekspert
26. februar 2014 - 12:35 #1
Still cant use CASE in Access :-)


I assume you are doing this in a query, so I would suggest using the Expression builder to help you get the syntax right.

Right click in the field and choose Build

Your also welcome to send your dB to me and I'll try see what the problem is.

ekspertenATsanthell.dk
AT = @
Avatar billede johandysatan Novice
26. februar 2014 - 13:14 #2
Jeg dropper CASE udtrykket :-)

Jeg må heller komme med den lange forklaring så.

Jeg prøver at samle noget data fra vores sagsbehandlingssystem i Acces så det bliver nemmere at rapportere på.

Jeg har to tabeller som oprettes i Access via ODBC pass through queries ned i en MS SQL database. Tabellerne har jeg kaldt: Change Data og Task Data.

Disse to tabeller joiner jeg så i en forespørgsel og vil her gerne nøjes med at have den nyeste af datoerne i hhv.
[Change Data]![Last_Modified_Date]
og
[Task Data]![Modified_Date]

Jeg bruger Expression Builder allerede, så jeg spekulere på om det er Dato formatet jeg ikke kan bruge i IIf().
Avatar billede johandysatan Novice
26. februar 2014 - 13:18 #3
@Terry: assume it's ok to write in Danish :-)
Avatar billede terry Ekspert
26. februar 2014 - 13:57 #4
@Terry: assume it's ok to write in Danish :-)

Yes :-)


Now I see why you placed your question in MS SQL ...

If you have two linked (ODBC) tables in Access you should be able to make an Access query and use Access syntax (IIF). If you make a passthrough query (execute SQL on SQL server) then you need to use SQL Server syntax (CASE or whatever ..).

So you have an Access query which works (doesn't give an error) but just doesn't give you the right answer?

Could be date format, maybe try formatting date in query ..

You could also make stored procedure in SQL server and call this to give you result.
Avatar billede terry Ekspert
26. februar 2014 - 13:58 #5
I'll have a play around and get back ...
Avatar billede terry Ekspert
26. februar 2014 - 14:54 #6
this works

IIf([Change Data].[Last_Modified_Date]>[Task Data].[Modified_Date],[Change Data].[Last_Modified_Date],[Task Data].[Modified_Date]) AS [Sidst sagsbehandlet]
Avatar billede terry Ekspert
26. februar 2014 - 14:55 #7
change ! to .
Avatar billede terry Ekspert
26. februar 2014 - 14:55 #8
.
Avatar billede terry Ekspert
27. februar 2014 - 19:21 #9
don't forget to accept answer if it works :o)
Avatar billede terry Ekspert
28. februar 2014 - 15:32 #10
.
Avatar billede terry Ekspert
13. marts 2014 - 18:59 #11
Thanks Johan
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester