Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Beräkningar i "Flera objekt"-formulär

Postades av 2009-11-19 09:26:37 - Carina Svensson, i forum access, Tråden har 4 Kommentarer och lästs av 1510 personer

Hej!
Jag har ett "Flera objekt"-formulär som har tre fält, kontrakt_nr, ÅrMånad och Belopp som visar värden hämtade från en tabell.

Dessutom finns det tre ytterligare fält, Ackumulerat_belopp, MånadFörraÅret och Ifjol_Ackumulerat_belopp. De är obundna och ska visa resultatet från koden nedan. Koden finns i formulärets "Form_Load().

MgsBoxarna visat precis som jag vill att det ska fungera, rätt värden kommer fram, men i formuläret så får alla poster identiska värden för Ackumulerat_belopp, MånadFörraÅret och Ifjol_Ackumulerat_belopp.

Hur kan man göra för att varje rad i formuläret använder de rätta värdena? Verkar ju inte fungera med:

Me.Ackumulerat_belopp = rs("Summan1")
Me.MånadFörraÅret = myRecordSet.Fields(0).Value
Me.Ifjol_Ackumulerat_belopp = rs2("Summan2")

Mycket tacksam för hjälp!

'Ta fram ÅrMånad och belopp som är kopplade till kontraktnr
myRecordSet4.Open "SELECT ÅrMånad, Belopp FROM Omsättning WHERE (((kontrakt_nr)= '" & [Forms]![frm_Startmeny_Omsättning]![RedigeraOmsättning_kontrakt_nr] & "'))"
While Not myRecordSet4.EOF
MsgBox ("ÅrMånad: " & myRecordSet4.Fields(0).Value)
MsgBox ("Belopp: " & myRecordSet4.Fields(1).Value)
myÅrMånad = myRecordSet4.Fields(0).Value
månad = Month(myÅrMånad) - 1
åretsFörstaMånad = DateAdd("m", -månad, myÅrMånad)
MsgBox ("ÅretsFörstaMånad: " & åretsFörstaMånad)
FörraÅretsFörstaMånad = DateAdd("yyyy", -1, åretsFörstaMånad)
MsgBox ("FörraÅretsFörstaMånad: " & FörraÅretsFörstaMånad)
FörraÅretsAktuellaMånad = DateAdd("yyyy", -1, myÅrMånad)
MsgBox ("FörraÅretsAktuellaMånad: " & FörraÅretsAktuellaMånad)

'Ackumulerat belopp hittills i år
strSQL = "SELECT SUM(Belopp) AS Summan1 FROM Omsättning WHERE (((kontrakt_nr)= '" & [Forms]![frm_Startmeny_Omsättning]![RedigeraOmsättning_kontrakt_nr] & "')AND (ÅrMånad BETWEEN #" & åretsFörstaMånad & "# AND #" & myÅrMånad & "#))"
Set rs = CurrentDb.OpenRecordset(strSQL)
Me.Ackumulerat_belopp = rs("Summan1")
MsgBox ("Me.AckBelopp: " & Me.Ackumulerat_belopp)
rs.Close

'Ta fram inflyttningsdatum
myRecordSet2.Open "SELECT Inflyttningsdatum FROM Kontrakt WHERE (((kontrakt_nr)= '" & [Forms]![frm_Startmeny_Omsättning]![RedigeraOmsättning_kontrakt_nr] & "'))"
inflyttningsdatum = myRecordSet2.Fields(0).Value
MsgBox ("Inflyttningsdatum: " & inflyttningsdatum)

If FörraÅretsAktuellaMånad > inflyttningsdatum Then
' Föregående års belopp för samma månad.
myRecordSet.Open "SELECT belopp FROM Omsättning WHERE (((kontrakt_nr)= '" & [Forms]![frm_Startmeny_Omsättning]![RedigeraOmsättning_kontrakt_nr] & "')AND ((ÅrMånad) = #" & FörraÅretsAktuellaMånad & "#))"
Me.MånadFörraÅret = myRecordSet.Fields(0).Value
MsgBox ("Me.MånadFörraÅret: " & Me.MånadFörraÅret)

' Ackumulerat belopp under samma tidsperiod förra året
strSQL2 = "SELECT SUM(Belopp) AS Summan2 FROM Omsättning WHERE (((kontrakt_nr)= '" & [Forms]![frm_Startmeny_Omsättning]![RedigeraOmsättning_kontrakt_nr] & "')AND (ÅrMånad BETWEEN #" & FörraÅretsFörstaMånad & "# AND #" & FörraÅretsAktuellaMånad & "#))"
Set rs2 = CurrentDb.OpenRecordset(strSQL2)
Me.Ifjol_Ackumulerat_belopp = rs2("Summan2")
MsgBox ("Me.Ifjol_Ackumulerat_belopp: " & Me.Ifjol_Ackumulerat_belopp)
myRecordSet.Close
rs2.Close

Else
MsgBox ("Ej kontrakt då")
End If
myRecordSet2.Close
myRecordSet4.MoveNext
Wend


Svara

Sv: Beräkningar i "Flera objekt"-formulär

Postades av 2009-11-19 14:17:24 - Åsa Holmgren

Obunda kontroller visar samma värde för alla poster i ett "Flera objekt"-formulär. För att få värden som gäller för respektive post måste beräkningarna finnas med i formulärets datakälla.

Du behöver göra om de obundna fälten till beräknade fält. Om vi antar att ÅrMånad innehåller den första dagen i respektive månad kan du lägga till beräknade fält enligt:

-----------------------------------------------------

Ackumulerat_belopp:
=DSumma("[Belopp]";"Omsättning";"[kontrakt_nr] = '" & [kontrakt_nr] & "' And [ÅrMånad] Between #" & DatumSerie(År([ÅrMånad]);1;1) & "# And #" & [ÅrMånad] & "#")

MånadFörraÅret:
=DSlåUpp("[Belopp]";"Omsättning";"[kontrakt_nr] = '" & [kontrakt_nr] & "' And [ÅrMånad] = #" & DatumSerie(År([ÅrMånad])-1;Månad([ÅrMånad]);1) & "#")

Ifjol_Ackumulerat_belopp:
=DSumma("[Belopp]";"Omsättning";"[kontrakt_nr] = '" & [kontrakt_nr] & "' And [ÅrMånad] Between #" & DatumSerie(År([ÅrMånad])-1;1;1) & "# And #" & DatumSerie(År([ÅrMånad])-1;Månad([ÅrMånad]);1) & "#")

-----------------------------------------------------

Det finns säkert prestandamässigt bättre sätt, men detta fungerar iallafall.


Svara

Sv:Beräkningar i "Flera objekt"-formulär

Postades av 2009-11-19 15:50:10 - Carina Svensson

Tack så jättemycket Åsa!
Nu visas rätt värden i formuläret! Ska kolla igenom senare hur du har gjort, men just nu nöjer jag mig med att det fungerar.

Det är dock en sak med formuläret som inte ser så bra ut. Det är en extrarad längst ned och det står #Fel i dess beräknade fält.

/Carina


Svara

Sv: Beräkningar i "Flera objekt"-formulär

Postades av 2009-11-19 16:17:38 - Åsa Holmgren

Extraraden slipper du om du anger formulärets egenskap "Tillåt tillägg" till "Nej"


Svara

Sv:Beräkningar i "Flera objekt"-formulär

Postades av 2009-11-19 17:12:49 - Carina Svensson

Tack än en gång!
Mycket snällt av dig att hjälpa mig!


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
758
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies