Avatar billede gpesp Novice
12. maj 2011 - 14:32 Der er 7 kommentarer og
1 løsning

Sidste kvartal

Arbejder med en forespørgsel og skal bruge den sidste dag i det sidste kvartal. Eksempel: Dags dato er 12. maj 2011, så jeg skal have Access til at give mig datoen 31. marts 2011. Jeg har behov for en løsning uden brug af kode, dvs. kun ved brug af indbyggede funktioner (dateadd m.fl.) Har nogen en ide?
Avatar billede mugs Novice
12. maj 2011 - 15:24 #1
Jeg tror ikke, at Access indbyggede funktioner kan give dig hvad du ønsker.

Denne gør ud fra dags dato:

Function FirstOfQuarter(Optional dteDate As Date) As Date
If CLng(dteDate) = 0 Then
dteDate = Date
End If
FirstOfQuarter = DateSerial(Year(dteDate), Int((Month(dteDate) - 1) / 3) * 3 + 1, 1) - 1
End Function
Avatar billede gpesp Novice
12. maj 2011 - 15:44 #2
Tak. Hvordan indlæser jeg konkret denne kode? Jeg er ikke vant til at bruge kode...
Avatar billede mugs Novice
12. maj 2011 - 16:07 #3
Kopier min kode ind i et modul. I en formular indsætter du denne kode i formularens VedAftuel (current) som et hændelsesmodul:

Me.DITFELT = FirstOfQuarter

DITFELT vil herefter altid få tildelt værdien af funktionen. Hvis du vil have funktionen returneret til en forespørgsel, kan du indsætte denne i forespørgslen:

Udtryk1: firstofquarter(Date())
Avatar billede gpesp Novice
13. maj 2011 - 09:25 #4
Hej mugs

Meget smart!!! Mange tak. Det virker i forespørgslen. Der er bare det problem, at når jeg forsøger at hente forespørgslen ind i Excel via Data/Importer eksterne data/Ny databaseforespørgesel så får jeg en fejl:

"Der er en ikke-defineret funktion "firstofquarter" i udtrykket."

Og så stopper festen...

Fra Excel forsøgte jeg også at redigere kaldet til databasen i Microsoft Query. Her får jeg fejlen "Kan ikke få adgang til felter i tabellen..."

Ved du om man kan gøre noget ved det?
Avatar billede mugs Novice
13. maj 2011 - 13:44 #5
Prøv at eksportere fra Access til Excel, så fungerer det her. Indsæt denne kode i en kommandoknap. Du skal ændre forespørgsel1 tiol navnet på din forespørgsel:

DoCmd.TransferSpreadsheet acExport, 8, "forespørgsel1", "C:\Documents and Settings\mugs\Skrivebord\mappe1", True, ""
Avatar billede mugs Novice
13. maj 2011 - 13:44 #6
Og selvfølgelig stien og navnet på exccel-filen.
Avatar billede gpesp Novice
13. maj 2011 - 14:02 #7
Det er super mugs. Mange tak for svar. Du får points.
Avatar billede mugs Novice
13. maj 2011 - 15:21 #8
Tak skal du have. Du mangler blot at acceptere mit svar.
God weekend.
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