Avatar billede daniel_d Nybegynder
20. juni 2005 - 14:07 Der er 11 kommentarer og
1 løsning

Finde antal dage mellem 2 datoer og udføre beregning

Jeg har designet en formular som skal bruges til refusionsopgørelser, hvor jeg bl.a. skal lave en beregning som denne:

(beløb/betalt periode)*refusionsperiode=favør

Til denne beregning har jeg felterne:
Beskrivelse, Beløb, Betalt Fra, Betalt Til, Køber Refunderer, Sælger Refunderer

Jeg har lavet en knap der på baggrund af beløb og de indtastede datoer skal lave ovenstående beregning, men her er  det så at filmen knækker.

For hvordan gør man det?

NB: i tabellen bruger jeg navne uden æøå og mellemrum.
Avatar billede daniel_d Nybegynder
20. juni 2005 - 14:14 #1
Datoformatet skal helst være xx-xx-xxxx eks: 01-08-2005
Avatar billede terry Ekspert
20. juni 2005 - 14:42 #2
can you give some more information.

What fields do you have in your table? Where are "Køber Refunderer" and "Sælger Refunderer" used in the  calcualtion?
Avatar billede mugs Novice
20. juni 2005 - 15:02 #3
Som terry nævner kunne vi godt bruge lidt yderligere informationer. Af dit spørgsmål kan vi udlede at du vil finde antal dage mellem 2 datoer. Det kan du gøre med funktionen dateDiff:

Udtryk1:(DateDiff("d";[Dato1];[Dato2]))

Dette udtryk kan du så beregne videre på.
Avatar billede daniel_d Nybegynder
20. juni 2005 - 16:09 #4
Efter lidt søgning her på exp fandt jeg svaret - det var såmænd meget simpelt med datadiff funktionen
Avatar billede daniel_d Nybegynder
20. juni 2005 - 16:12 #5
Mugs - det var præcis den funktion du har postet jeg også fandt, men selvom jeg selv fandt svaret har du alligevel givet mig den ønskede løsning, så point til dig.
Avatar billede terry Ekspert
20. juni 2005 - 16:14 #6
... og udføre beregning????
Avatar billede daniel_d Nybegynder
20. juni 2005 - 16:17 #7
Jeg benytter datediff på følgende måde: AntalDage = DateDiff("d", Me!Betalt_fra_1, Me!Betalt_til_1)

Hvis jeg indtaster en ugyldig dato - f.eks. 31/6-2005 som kun har 30 dage får jeg naturligvis fejl. Er der en enkel måde hvorpå man kan lave en validering

tænker på noget a la.

If Valid AntalDage = DateDiff("d", Me!Betalt_fra_1, Me!Betalt_til_1) Then
Else
MsgBox "Datoen er ugyldig", vbInformation
End if
Avatar billede daniel_d Nybegynder
20. juni 2005 - 16:18 #8
Terry: min beregning var ikke der hvor jeg havde de store problemer. Men du må da gerne se den:

Private Sub Kommandoknap272_Click()
    Dim Betalt_fra_1 As Date
    Dim Betalt_til_1 As Date
   
    Me!K_refunderer_1 = ""
    Me!S_refunderer_1 = ""
   
    AntalDage = DateDiff("d", Me!Betalt_fra_1, Me!Betalt_til_1)
   
    AntalDageRef = DateDiff("d", Me!Overtagelsesdato, Me!Betalt_til_1)
    AntalDageRef = AntalDageRef + 1
   
    Favoer = Round(((Beloeb_1 / AntalDage) * AntalDageRef), 2)
   
    If Beloeb_1 < Favoer Then
    MsgBox "Perioden er ugyldig", vbInformation
    Else
       
        If AntalDageRef > 0 Then
            Me!K_refunderer_1 = Favoer
        Else
        End If
       
        If AntalDageRef < 0 Then
            Me!S_refunderer_1 = Favoer
        Else
        End If
            Me!Antal_dage_ref_1 = AntalDageRef
            Me!Antal_dage_1 = AntalDage
   
    End If
   
    Refresh
   
End Sub
Avatar billede terry Ekspert
20. juni 2005 - 16:25 #9
I was just puzzled by the question.

Finde antal dage mellem 2 datoer

would have been more specific, but you got what you were after, so not to woory :o)
Avatar billede daniel_d Nybegynder
20. juni 2005 - 16:40 #10
Det har du naturligvis ret i Terry... I kampens hede går det nogle gange lidt for stærkt :)
Avatar billede daniel_d Nybegynder
20. juni 2005 - 16:47 #11
løste mit valideringsproblem med datoens gyldighed med en simpelt on error goto
Avatar billede mugs Novice
20. juni 2005 - 16:59 #12
Tak for point.
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