Avatar billede previ Nybegynder
15. maj 2003 - 15:28 Der er 6 kommentarer og
1 løsning

Indsæt ikke eksisterende datoer i saldo-tabel

Hej,

Der er tale om en tabel i Access.

Jeg har en kundetabel (TABEL1), der bl.a. indeholder et saldofelt (a la kontooversigten fra banken). Jeg ønsker ved hjælp af en makro at få oprettet en ny tabel (TABEL2), der indeholder alle de tomme datoer, dvs. jeg ønsker for hver dato (til dags dato) at få vist saldoen for hver kunde i den nye tabel.

Eksempel på det jeg har (TABEL1):

Kundenr      Dato                Saldo
12            10.02.2003          100
12            12.02.2003          40
12            13.02.2003          60
25            18.04.2003          100
25            22.04.2003          300
25            23.04.2003          500
25            25.04.2003          600
ETC.

Via en makro ønsker jeg en ny tabel (TABEL2), der skal se således ud:

Kundenr      Dato                Saldo
12            10.02.2003          100
12            11.02.2003          100
12            12.02.2003          40
12            13.02.2003          60
...op til dags dato
25            18.04.2003          100
25            19.04.2003          100
25            20.04.2003          100
25            21.04.2003          100
25            22.04.2003          300
25            23.04.2003          500
25            24.04.2003          500
25            25.04.2003          600
...op til dags dato
ETC.

Jeg ved dette kan lade sig gøre, men hvem kan hjælpe mig?

Mvh.

previ
Avatar billede terry Ekspert
15. maj 2003 - 16:27 #1
Yes its possible but not with a macro, it will require some VBA code. If I get a bit of time later then I will see what I can do to put something together
Avatar billede terry Ekspert
17. maj 2003 - 14:09 #2
previ>http://www.eksperten.dk/spm/352944
isnt this the same question you have three times?
Avatar billede terry Ekspert
17. maj 2003 - 16:17 #3
Function UpdateSaldo()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs1 As ADODB.Recordset
Dim sSQL As String

Dim TheDate As Date
Dim LastDate As Date
   
    Set rs = New ADODB.Recordset
    Set rs1 = New ADODB.Recordset
   
    With rs
       
        Set .ActiveConnection = CurrentProject.Connection
        Set rs1.ActiveConnection = CurrentProject.Connection
       
        .Open "Select DISTINCT KundeNr From tabel1"
       
        DoCmd.SetWarnings False
        Do Until .EOF
           
            TheDate = DMin("Dato", "tabel1", "Kundenr = " & rs!Kundenr) 'Get first date for this Kunde
           
            Do Until TheDate > Date 'loop until today
           
                rs1.Open "Select TOP 1 Saldo From tabel1 WHERE Kundenr = " & rs!Kundenr & " AND dato <= #" & Format(TheDate, "yyyy/mm/dd") & "# ORDER By Dato DESC"
               
                DoCmd.RunSQL "INSERT into tabel2 (kundenr, dato, saldo) VALUES(" & rs!Kundenr & ", '" & TheDate & "', " & rs1!saldo & ")"
               
                rs1.Close
                TheDate = DateAdd("d", 1, TheDate)
             
            Loop
            .MoveNext
        Loop
       
    End With
    rs.Close
    DoCmd.SetWarnings True
   
End Function
Avatar billede terry Ekspert
17. maj 2003 - 16:19 #4
I'm sure it could be done differently but this does work :o)
Avatar billede previ Nybegynder
19. maj 2003 - 11:05 #5
terry, det virker efter mit ovenstående eksempel, men giver problemer, hvis der er 2 eller flere saldo'er til samme dato (det giver da koks i overførslen af saldoen). Er det muligt at tage højde for dette.
PS. Jeg har oprettet 2 spørgsmål ("Indsættelse af dato..." og "Akkumuleret saldo..."), hvor det ene er stillet 2 gange, hvilket jeg ikke var klar over var ulovligt.
Avatar billede previ Nybegynder
19. maj 2003 - 11:34 #6
Glem det. Jeg har ikke brug for at tage højde for 2 eller flere saldi pr. dag. Tak for hjælpen!
Avatar billede terry Ekspert
19. maj 2003 - 12:15 #7
previ>Sorry but I'm not "online" 24 hours a day :o)

Concerning the problem you mention! I was actually aware of this when I made the solution but didnt take it into concideration as I think it would be an idea to make some alterations to you dB!
You could for example save the Date+Time so that we know exactly which order the records were created. Or you can have a autonumber field as the parimary key, this will also help us find the correct record order.
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