Avatar billede fogh Nybegynder
14. april 2004 - 16:23 Der er 7 kommentarer og
1 løsning

Opret records via VBA i en form og indsæt i tabel via SQL

Hej!
Jeg har en form [frmBetalingsaftaler] med to felter : [Beløb] og [Antal rater]

Jeg skal bruge noget kode der kan opsplitte Beløbet i det givne antal rater, og oprette
et tilsvarende antal records i en tabel.

Eksempel: [Beløb] = 600 kr og [Antal rater] = 6, skal give 6 records á 100 kr.
Raterne skal navngives(nummereres)"Rate 1", "Rate 2" osv. og oprettes i tabellen [tblRater] i følgende felter: Rate_ID, Ratenr, Beløb.
How to do ?  Håber der er nogen der kan hjælpe!
mvh Thomas
14. april 2004 - 17:03 #1
Public Function OpdelIRater(Beløb as single, Antal as long)
Dim cn as ADODB.connection
Dim rs as ADODB.Recordset
Dim n as long
Set cn = Currentproject.Connection
Set rs = New ADODB.Recordset
rs.Open "tblRater", cn, adOpenKeyset,adLockOptimistic
For n = 1 to Antal
  rs.Addnew
  rs!Ratenr = "Rate " & n
  rs!Beløb = Beløb/Antal
  rs.Update
Next n
rs.close
set rs = nothing
cn.close
set cn = Nothing
end function


Kald funktionen således fra formularen (f.eks. en knap):
OpdelIRater Me!Beløb, Me![Antal Rater]
Avatar billede fogh Nybegynder
14. april 2004 - 22:09 #2
Hej Thomas!
Lige i øjet! Jeg har også brug for at kunne datere raterne, men jeg opretter et nyt spørgsmål til den (hvis ikke jeg finder noget på sitet her...) 1000 Tak mvh Thomas
14. april 2004 - 22:10 #3
anytime :o)
14. april 2004 - 22:14 #4
Du kan altid lægge en dato ind sammen med de andre felter. F.eks. således:

...
Startdato = Date+30
For n = 1 to Antal
  rs.Addnew
  rs!Ratenr = "Rate " & n
  rs!Beløb = Beløb/Antal
  rs!dato = Startdato + n*7
  rs.Update
Next n
...

Dette lægger ratedatoer ind med 7 dages mellemrum, startende 30 dage fra nu. (blot et eksempel)
Avatar billede fogh Nybegynder
14. april 2004 - 22:28 #5
Det var PRÆCIS det jeg var ude efter! Det kører for dig! Hvis min Startdato fx. er '10-01-2004', hvordan rammer jeg så den 10 dag i hver af de efterfølgende måneder (alle rater betales fx. på dag 10 ...)????? / håber det går an / Thomas
14. april 2004 - 22:32 #6
Måske sådan:
For n = 1 to Antal
  rs.Addnew
  rs!Ratenr = "Rate " & n
  rs!Beløb = Beløb/Antal
  rs!dato = dateadd("m", n, Startdato)
  rs.Update
Next n
Avatar billede fogh Nybegynder
14. april 2004 - 22:39 #7
Yepper! Hvordan får du nu point for alt det?? / Thomas
14. april 2004 - 22:41 #8
det er ok...send lidt venlige tanker en anden gang, så går det nok :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