Avatar billede jensen363 Forsker
17. oktober 2005 - 09:08 Der er 15 kommentarer og
1 løsning

Rapport som viser hvornår kunden skal betale.

En kunde har indgået aftale om levering af en given ydelse, betalingsbetingelser o.s.v.

Disse oplysninger er indtastet i en tabel, med følgende indhold :

  KundeID
  FørsteBetalingsdato
  Termin

Betalingsbetingelserne (Termin) er om denne forudbetaler månedlig, kvartalsvis eller årligt. Ud fra første betalingsdato (betalingsdato = betalingsmåned), ønskes månedsvis at kunne bestille/udskrive en rapport over hvilke kunder som skal faktureres i bestillingsmåneden.

Eksempel :

Input fra tabel

KundeID      FørsteBetalingsdato    Termin       
Kunde 1      01.01.2006        Månedlig
Kunde 2      01.02.2006        Kvartalsvis
Kunde 3      01.01.2006        Årlig

Outputgrundlag

KundeID      Faktureringsmåned   
Kunde 1      Jan
      Feb
      Mar
      o.s.v.

Kunde 2      Feb
      Maj
      Aug
          Nov

Kunde 3      Jan

Hvordan skal min SQL - forespørgsel se ud ?
Avatar billede terry Ekspert
17. oktober 2005 - 09:13 #1
I may be wrong, but I very much doubt that you can do this with SQL without having another table containing Termin dates
Avatar billede jensen363 Forsker
17. oktober 2005 - 09:15 #2
I´m open for any good ideas
Avatar billede terry Ekspert
17. oktober 2005 - 09:17 #3
the extra table would have a record for each termin date, payment etc. then it shoul dbe very simple to make the report
Avatar billede terry Ekspert
17. oktober 2005 - 09:21 #4
when you create a record in the first table you would need to generate a record for each termin in the new table. If you dont know how many "termin" ther are then
you will also need a routine which you can run at intervals to make sure they get added.
Avatar billede terry Ekspert
17. oktober 2005 - 09:22 #5
Normally a contract is for a specific period which needs to be extened for example annually
Avatar billede jensen363 Forsker
17. oktober 2005 - 09:26 #6
I have a table with this :

  Termin      FaktorValue
  Månedlig      1
  Kvartalsvis  3
  Årlig        12

Could I using this syntax (Kvartalsvis) :

  Rate 1  :  Month([FørsteBetalingsdato]) + FaktorValue
  Rate 2  :  [Rate 1] + FaktorValue
  and so on

... works as long as Month is les than 12 ... but continues with 13, 14 ... ????
Avatar billede kabbak Professor
17. oktober 2005 - 09:38 #7
Dim rate1  As Date, rate2 As Date
FørsteBetalingsdato = #12/5/2005#
Faktorvalue = 12
rate1 = Format(FørsteBetalingsdato + DateSerial(0, Faktorvalue, 0), "dd-mm-yy", vbMonday, vbFirstFourDays)
rate2 = Format(rate1 + DateSerial(0, Faktorvalue, 0), "dd-mm-yy", vbMonday, vbFirstFourDays)
Avatar billede terry Ekspert
17. oktober 2005 - 09:45 #8
If you choose to use an extra table then you will need to add the records in code.

Lets say that the extra record contained just two fields

KundeID (Foreign key)
TerminDato

You will need to have a loop which addes either 1, 3, or 12 months to  FørsteBetalingsdato and inserts it into the new table. You can use DateAdd for that.

The number of times that has to be done (in the loop) depends on how many payments they must make.
Avatar billede jensen363 Forsker
17. oktober 2005 - 09:51 #9
Can you give/send me an example ?
Avatar billede terry Ekspert
17. oktober 2005 - 09:55 #10
do you have information concerning how many payemnts they have to make?
Avatar billede jensen363 Forsker
17. oktober 2005 - 09:58 #11
I only need a list with KundeID per month, not the actual date

Make an example with payment months the next 2 years

Send to ose@post.dk
Avatar billede terry Ekspert
17. oktober 2005 - 10:00 #12
You need the dates to get the months :o)
Avatar billede terry Ekspert
17. oktober 2005 - 12:38 #13
Function AddToTerminDates(KundeID, FirstDate As Date, Termin As Integer, NumberOfPayments As Integer)
Dim Payments As Integer
Dim i As Integer
Dim sSQL As String

   
    Payments = NumberOfPayments / Termin
    sSQL = "Insert Into tblTerminDates(KundeID, TerminDato) Values ("

    DoCmd.SetWarnings False
    For i = 1 To Payments
   
        DoCmd.RunSQL sSQL & KundeID & ", '" & CDate(DateAdd("m", i * Termin, FirstDate)) & "')"
   
    Next i
    DoCmd.SetWarnings True




End Function
Avatar billede jensen363 Forsker
17. oktober 2005 - 12:39 #14
Works perfectly :o)
Avatar billede jensen363 Forsker
17. oktober 2005 - 12:53 #15
Tested it ... and what can I say, .... it works 100 % ...
( no surprice comming from you )

thanks again
Avatar billede terry Ekspert
17. oktober 2005 - 13:01 #16
:o)
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