Avatar billede hnto Nybegynder
30. oktober 2002 - 00:10 Der er 12 kommentarer og
2 løsninger

fortløbende sammentælling access 97

Jeg har en query Q-master hvor der er et felt 'turnover'.Dette felt er sorteret faldende.

Ved siden af dette felt ønsker jeg nu at lave en fortløbende sammentælling af posternes værdi i 'turnover'.

Jeg har prøvet med Dsum men min access opdateres da MEGET langsomt. (2 poster i sekundet....)
Avatar billede terry Ekspert
30. oktober 2002 - 09:27 #1
I can imagine it does. If I understand your question correctly for EVERY record you are summing up the field for ALL previous records.
You may be able to use a SUB SELECT in the field but I am not sure it is going to help
Avatar billede hnto Nybegynder
30. oktober 2002 - 09:32 #2
Det du skriver er det bare en konstatering af at det der allerede gøres er den eneste måde ? eller foreslår du en anden måde.?
Avatar billede terry Ekspert
30. oktober 2002 - 09:36 #3
You may be able to use a SUB SELECT in the field but I am not sure it is going to help
Avatar billede hnto Nybegynder
30. oktober 2002 - 09:38 #4
try me...

how does SUB SELECT work.?  ( ex.)
Avatar billede terry Ekspert
30. oktober 2002 - 09:53 #5
A sub select is something like this, the exact syntax you need will be different and MAY NOT be possible becuase you need to include thecurrent records turnover in th esub slect and I am not sure how this is done.

Tot: (SELECT Sum(fld) FROM tbl)

Another thing you could try if you havent already done so is to INDEX the field.
Avatar billede hnto Nybegynder
30. oktober 2002 - 10:36 #6
index er ikke godt fordi feltet er et beregningsfelt i en query. :-(
Avatar billede terry Ekspert
30. oktober 2002 - 10:41 #7
! what is wrong with that?
Avatar billede hnto Nybegynder
30. oktober 2002 - 11:07 #8
Jeg ved ikke hvordan man indexerer et beregningsfelt i en query.
Avatar billede terry Ekspert
30. oktober 2002 - 11:10 #9
OK, now I understand! The underlaying fields could be indexed. If the calculation is complex then this is also something which will slow things down

what does you dsum look like?
Avatar billede hnto Nybegynder
30. oktober 2002 - 11:13 #10
Result: DSum("[turnover]";"[turnover_custumer]";"[ID]<=" & [turnover_custumer].[ID])
Avatar billede hnto Nybegynder
30. oktober 2002 - 11:14 #11
For at ovenstående skal give mening er ID dog nødsaget til at være Accending når man viewer queryen.
Avatar billede hnto Nybegynder
30. oktober 2002 - 11:26 #12
har løst det acceptabelt ved :

Jeg skriver til en ny tabel og foretager derefter kun min DSUM på baggrund af tebellen, derved opnår jeg også at ID kan placeres stigende sonkront med at omsætningen falder.

Vi slår halv skade for din indsats
Avatar billede terry Ekspert
30. oktober 2002 - 11:28 #13
OK, og tak :o)
Avatar billede hnto Nybegynder
01. november 2002 - 14:55 #14
Hvor svært kan det være !!!!

Til orientering er her det script der faktisk kører perfekt og hurtigt...

Public Function Opdater_NSC()

    Dim db As Database
    Dim rs As Recordset
    Dim LastValue As Integer
    Set db = CurrentDb
    Set rs = db.OpenRecordset("turnover_custumer", dbOpenDynaset)
   
    LastValue = 0

    Do
       
        rs.Edit
        rs!result = LastValue + rs!turnover
        LastValue = rs!turnover
        rs.Update
        rs.MoveNext

    Loop Until rs.EOF
    rs.Close
    Set rs = Nothing

End Function
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