Avatar billede kornum Nybegynder
23. marts 2007 - 03:25 Der er 26 kommentarer og
2 løsninger

Krydstabulering over perioder? (Folk skal optræde i flere perio.)

Hejsa.

Håber virkeligt i kan hjælpe mig her. Jeg har forsøgt at få lavet en statistik (krydstabulering) over hvor mange der er aktive i databasen pt. - Jeg har felterne start og slut.

Jeg kan fint lave en krydstabulering over de som er startet i de og de måneder og det samme med sluttet.

Problemet kommer når jeg gerne vil sige at eks. person1 var der fra januar til april på baggrund af start og slut datoerne. - Således han gerne skulle optræde 1 gang i både januar, februar, marts og april. Jeg laver en antagelser omkring d bliver d. 15 i måneden som er afgørende.

Dette kan jeg ikke få til at funke, har forsøgt mig med lidt af hvert. Men tror jeg er kommet frem til enten at skulle køre en tabel oprettelse som så smider person1 ind i en tabel med 4 gange, altså med januar, februar, marts og april. Må være løsningen men kan heller ikke helt få formuleret den loop/procedure i access sql:(

Jeg forsøgte mig også med at gøre det direkte i krydstabuleringen med noget ala nedenstående. (BAre kun sådan dem ikk var afsluttet kom med flere gange, men det virker heller ikke)

TRANSFORM sum(IIf(isnull(slut)=True,1,Null)) AS AntalOfCPR
......
PIVOT Format([Start],"mmm") In ("jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec");


Så jeg håber virkeligt der en haj herinde som kan hjælpe mig med noget lignende datawarehouse i access :)
Avatar billede jensen363 Forsker
23. marts 2007 - 08:39 #1
Kan du ikke nøjes med en markering i start hhv, slut måned ???
Avatar billede kornum Nybegynder
23. marts 2007 - 08:43 #2
Nej. Dem løsning har jeg også lavet. Men vil gerne have en belægningsprocent pr. måned. Så bliver nødt til at sige der var eks. 50 i januar og 45 i februar osv.. På baggrund af antagelsen om d. 15 i måneden...

Håber der er en løsning på problemet... - For har selv prøvet lidt af hvert, som i kan se ovenfor...
Avatar billede jensen363 Forsker
23. marts 2007 - 08:54 #3
Ok, jeg arbejder videre på sagen :-)
Avatar billede Slettet bruger
23. marts 2007 - 09:03 #4
Er årstal underordnet!~)
Avatar billede kornum Nybegynder
23. marts 2007 - 09:18 #5
Jensen363 -> Lyder sq godt :)

Spg -> Nej.. regner med at lave sådan en rapport for år x.. altså sådan folk vælger et år inden rapporten vises... laver jeg bare med [søgekriterie], så der kommer popup frem...
Avatar billede jensen363 Forsker
23. marts 2007 - 09:41 #6
Har du en mailadresse, så kan jeg sende et eksempel på, hvordan det kan gøres
Avatar billede Slettet bruger
23. marts 2007 - 09:48 #7
Du kunne i din tabel, lave felterne: jan, feb,...., dec og så bruge functionen:

Public Function Belaegning()
Dim i, j As Date
For i = 1 To 12
j = "15-" & Format(i, "00") & "-" & Format(Date, "yyyy")
    If Me.Start <= j And Me.Slut >= j Then
        Select Case i
        Case "1"
        Me.Jan = 1
        Case "2"
        Me.Feb = 1
        Case "3"
        Me.Mar = 1
        Case "4"
        Me.Apr = 1
        Case "5"
        Me.Maj = 1
        Case "6"
        Me.Jun = 1
        Case "7"
        Me.Jul = 1
        Case "8"
        Me.Aug = 1
        Case "9"
        Me.Sep = 1
        Case "10"
        Me.Okt = 1
        Case "11"
        Me.Nov = 1
        Case "12"
        Me.Dec = 1
        End Select
    End If
Next i
End Function

Den kan du så fyre af på et recordsæt eller bare sætte det på afterupdate eventen af din start/slut felter eller lave en knap, som indsætter eller hvad du nu synes...

Det vil have den fordel at du ikke behøver at arbejde med krydstab, som kan være lidt drilske, hvis du ønsker diverse kriterier!~)
Avatar billede Slettet bruger
23. marts 2007 - 09:59 #8
Du burde kunne omgå årstal ved at indflette formatet "dd-mm"....

For jeg har i eksemplet brugt Format(Date, "yyyy") ved variablen j og det er jo ikke sikkert du kan bruge det!~)
Avatar billede kornum Nybegynder
23. marts 2007 - 10:00 #9
Jensen363 -> Ja. Kong_kornum@hotmail.com - Send meget gerne :)

Spg -> Lyder sq smart spg. Det tror jeg lige jeg vil se lidt nærmere på i aften.. Har desværre ikke tid før.. - Men så skal man have noget med insert sql halløj når man sætter den til 1... - Så den smider en record ind i en tabel når det er tilfældet.. Er sådan du vil lave det, ikk? - For er ikk sikker på at jeg er hel med på din ide, når du skriver jeg ikke skal bruge krydstab...
Avatar billede kornum Nybegynder
23. marts 2007 - 10:01 #10
Rigtigt spg.. Det skal jeg nok få rettet op på :) - Det er bare metodikken jeg er interesseret i, så skal jeg forhåbentligt nok få det tilpasset :)
Avatar billede Slettet bruger
23. marts 2007 - 10:02 #11
Altså:

j = "15-" & Format(i, "00")   
If Format(Me.Start, "dd-mm") <= j And Format(Me.Slut, "dd-MM") >= j Then
Avatar billede kornum Nybegynder
23. marts 2007 - 10:03 #12
Spg -> Jeg havde lige overset det her:
Du kunne i din tabel, lave felterne: jan, feb,...., dec og så bruge functionen:

Sorry tror jeg er med på din ide, bare ikke den del med at jeg ikk skal bruge krydstab...
Avatar billede Slettet bruger
23. marts 2007 - 10:07 #13
Det nemmeste er at bruge din indtastningsformular og så lave en knap hvor du bruger koden:

dim r as dao.recordset
set r = me.recordset
do until r.eof

koden her......

r.movenext
loop
Avatar billede kornum Nybegynder
23. marts 2007 - 10:09 #14
Smukt spg. Den er jeg med på mht. at løbe recordsættet igennem.. Dejligt at du er så hjælpsom..

Men hvad mener du med ikke at bruge krydstab?

P.S. jeg kan desværre først teste det her i aften :(
Avatar billede Slettet bruger
23. marts 2007 - 10:14 #15
Ang. krydstab, så holder jeg selv af den fornemmelse det giver når det virker, men jeg ved også hvordan de kan drille og at de har sine begrænsninger!~)

Deres største begrænsning mener jeg er "dynamiske" kriterier i forespørgslen, hvis du vil have at en afgrænsning er afhængig af et felt, så er det overordentlig vanskeligt... og en anden ting er at en krydstab-forespørgsel ikke kan upsizes til en sql-server!~)
Avatar billede kornum Nybegynder
23. marts 2007 - 10:19 #16
Lyder som gode argumenter spg!

Men hvordan vil du så lave sådan en "tidslinie" hen ad (vandret) med månederne? også værdierne ind nedenunder?

Jeg kan godt se man kan lave det lodret med noget group by date("måned") halløj også count i den anden celle...

Men vil jo gerne lave det noget let læseligt og synes altså en tidsakse skal gå vandret fra venstre mod højre :)

Sorry men lige et ekstra spørgsmål.. Du skal nok få point for det her, men jensen363 får også nogle hvis han fremsender hans løsning... - Men det ser vi lige på iaften når jeg har fået testet jeres foreslag....
Avatar billede Slettet bruger
23. marts 2007 - 10:32 #17
du laver bare en sum i jan, feb...., dec intet andet og så indsæt felterne (evt. i en underformular!~)
Avatar billede Slettet bruger
23. marts 2007 - 10:34 #18
for at kunne lave summeringen og ende med en linie er du jo nød til at se bort fra person, start og slut...
Avatar billede kornum Nybegynder
23. marts 2007 - 10:34 #19
Jamen det bliver jo lodret det kommer til at stå... - vil gerne have det vandret illustreret...
Avatar billede Slettet bruger
23. marts 2007 - 10:47 #20
Det bliver vandret, for her har du jo et felt i tabellen for HVER måned (jeg ligger bare trykket, jeg råber ikke højt!~)
Avatar billede jensen363 Forsker
23. marts 2007 - 10:53 #21
Eksempel sendt ( uden brug af krydstab )
Avatar billede kornum Nybegynder
23. marts 2007 - 11:08 #22
hehe ok spg :) - jeg prøver det iaften.. tak tak...

jensen363 -> tak for mailen..

jeg ser på jeres forslag iaften.. tak for hjælpen! - Det er sq kanon!
Avatar billede Slettet bruger
23. marts 2007 - 11:17 #23
!~)
Avatar billede jensen363 Forsker
23. marts 2007 - 11:22 #24
Velbekommen
Avatar billede kornum Nybegynder
23. marts 2007 - 20:47 #25
Spg din løsninger funker super! - Kanon.. Jeg smed bare koden på der hvor statistik rapporten bliver oprettet og tilrettede, så funkede det... Super!

Jensen363 -> Jeg kan godt se princippet i din, men synes ikke jeg kan finde koden til hvordan du får den oprettet den tabel? - Så må sige 150 point til spg og 50 til dig...

Håber det er iorden med jer... Mange tak for hjælpen begge 2.

Så jensen363 smid lige et svar, så får du 50 af pointene...
Avatar billede kornum Nybegynder
24. marts 2007 - 21:23 #26
Jensen363 smider du lige et svar, så du kan få nogle af pointene.. Du har trodsalt også hjulpet, selvom det ikke var din løsning jeg har benyttet mig af...
Avatar billede jensen363 Forsker
26. marts 2007 - 08:23 #27
Takker :-)
Avatar billede kornum Nybegynder
26. marts 2007 - 08:42 #28
Tak for hjælpen!
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