08. maj 2014 - 12:32
Der er
9 kommentarer og 1 løsning
Er det her overhovedet muligt.
Jeg leder efter alle de mandage indenfor en periode hvor en medarbejder er allokeret i det angivne klokkeslæt. Kan jeg skrive AND Day([DT_tilbudskalender].[dato]= '" & monday ..... i min Query. ? ...... sCrit = "[DT_tilbudskalender].[IDmedarbejder] = " & medarbejderid & " AND [DT_tilbudskalender].[dato] <= #" & startdato & "# AND [DT_tilbudskalender].[dato] >= #" & slutdato & "# AND Day([DT_tilbudskalender].[dato]) = '" & "mandag" & "' AND [DT_tilbudskalender].[starttid] <= #" & testtid & "# AND [DT_tilbudskalender].[sluttid] >= #" & testtid & "#" If DCount("*", "DT_tilbudskalender", sCrit) > 0 Then ' underviseren er allerede allokeret .....
Annonceindlæg fra Computerworld it-jobbank
Den skulle selvfølgelig se sådan ud.... sCrit = "[DT_tilbudskalender].[IDmedarbejder] = " & medarbejderid & " AND [DT_tilbudskalender].[dato] <= #" & startdato & "# AND [DT_tilbudskalender].[dato] >= #" & slutdato & "# AND WeekDay([DT_tilbudskalender].[dato],2) = 1 AND [DT_tilbudskalender].[starttid] <= #" & testtid & "# AND [DT_tilbudskalender].[sluttid] >= #" & testtid & "#"
Det ser rigtigt ud. Virker det?
nix, returnerer 0, men det burde det. Så prøver jeg at lave en forespørgsel der gør det samme for at kigge på SQL generatoren, men jeg kan ikke i Felt rækken, skrive dag: Weekday([dato],2) og så i kriterie skrive 1. Det burde virke har et konkret Google eksempel der er præcis sådan, men den skriver at det indtastede udtryk indeholder ugyldig syntaks.
Den eneste ændring fra denne sql og den sidste du kiggede på er følgende. AND WeekDay([DT_tilbudskalender].[dato],2) = 1 så den skulle returnere alle mandage som overholder de øvrige kriterier, altså den rette IDmedarbejder, dato der ligger mellem 2 datoer og 1 klokkeslæt.
kan det være fordi at weekday skal have en seriel, eller dato i " " men jeg leverer det i den type den er defineret i DB som er date type ?
og hvordan døvlen laver jeg den så om....
Prøvede med WeekDay(int([DT_tilbudskalender].[dato]),2) = 1 Det virkede ikke.
weekday(cdate([DT_tilbudskalender]).[dato],2) = 1 virkede heller ikke.
ok prøvede testede en anden dcount som kun talte på dagen, og ikke havde andre kriterier, og der virker syntaksen WeekDay([DT_tilbudskalender].[dato],2) = 5 Der returneres det rigtige antal af mandag, tirsdag, onsdag, torsdag og fredage fra 1-5. dvs. der er noget galt med mine andre kriterier. De virkede bare lige før da du hjalp mig med syntaksen. Hmm investigating.......
Meget mærkeligt... Nu virker det, jeg har ingen forklaring på hvorfor det ikke virkede til at starte med. Hvis der er andre der har problem med dette og kommer forbi, kan jeg sige at den syntaks jeg havde i starten virker.
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser