Avatar billede dougheffernan Nybegynder
07. juni 2006 - 14:13 Der er 6 kommentarer og
1 løsning

Nemmeste måde at summere

Min tabel ligner nedenstående (FRAV går op til FRAV31)

MONTH    ARB    SHIFT    AREA    FRAV01    FRAV02    FRAV03    FRAV04
200606    00006    2    SDDS    2    2    2    2
200606    00113    1    Mach    1    1    1    1
200606    00123    1    Mach    1    1    1    1
200606    00125    1    Mach    1    1    1    1
200606    00203    2    Pack    2    2    2    2
200606    00246    2    Pack    1    1    1    1

På en formular kan man filtrere på MONTH, ARB, SHIFT og AREA og dernæste generere en rapport. Det fungerer fint. Nu kommer den svære del:
Jeg skal summere, for hver ARB, antallet FRAV01 + FRAV02 + FRAV03 + FRAV04 (osv.), hvor FRAV01 = 1, FRAV02 = 1, FRAV03 = 1 osv.
Men hvordan gør man det bedst/nemmest?
Avatar billede Slettet bruger
07. juni 2006 - 14:29 #1
Lav en forespørgsel på tabellen, her kan du lave et felt, som hedder FRAVialt: FRA01+FRAV02 osv, så kan du jo summe dette felt hvis det er nødvendigt!~)
Avatar billede dougheffernan Nybegynder
07. juni 2006 - 15:17 #2
Jeg må sgu indrømme jeg ikke kan "se" det... :(
Avatar billede Slettet bruger
08. juni 2006 - 00:23 #3
Hov, nu tror jeg at jeg forstår dit problem, det er de FRAV som er lig 1, som skal lægges sammen... Det gør det jo noget mere indviklet og løsningen, tjah...

Det nemmeste, forudsat at du kun har FRAV lig 1 eller 2, er at omdøbe 2 til 0!~)
Avatar billede dougheffernan Nybegynder
09. juni 2006 - 15:16 #4
:)
Desværre, FRAV kan antage værdierne 0, 1, 2 eller 3.

Det var et dårligt valgt eksempel, her et lidt andet:
MONTH    ARB    SHIFT    AREA    FRAV01    FRAV02    FRAV03    FRAV04
200606    00113    1    Mach        1        0          2        1
200606    00123    1    Mach        1        1          1        1
200606    00125    1    Mach        0        0          0        1
200606    00246    2    Pack        1        1          2        1

I ovenstående tilfælde ville jeg have følgende

ARB        Fraværsdage i alt
00113            2
00123            4
00125            1
00246            3
Avatar billede Slettet bruger
12. juni 2006 - 01:27 #5
Du laver et felt i din tabel, som hedder Ialt og så i din indtastningsformular (her skal du også tilføje feltet Ialt, du kan jo skjule det hvis det ikke er relevant), så lig sådan en her på hvert FRAV felt:

Private Sub FRAV01_AfterUpdate()
If Me.FRAV01 = 1 Then
Me.Ialt = Me.Ialt + 1
End If
End Sub

For at det virker skal standardværdien i Ialt feltet sættes til 0 og hvis du vil gå over nogle gamle data, skal du lige indsætte 0 i Ialt, i selve tabellen før du går igang!~)
Avatar billede Slettet bruger
19. juni 2006 - 23:57 #6
Status!~)
Avatar billede dougheffernan Nybegynder
20. juni 2006 - 15:21 #7
Status:
Summeringen er lavet som et gennemløb af et recordset og en optælling.
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