Dansk Access Forum
  Hjælp Hjælp  Søg i forum   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketResultatet af 1 forespørgsel i en 2 forespørgsel

 Besvar Besvar
Forfatter
rassten Se dropdown
Bronze bruger
Bronze bruger


Medlem: 07-07-2012
Land: Danmark
Status: Offline
Point: 5
Direkte link til dette indlæg Emne: Resultatet af 1 forespørgsel i en 2 forespørgsel
    Sendt: 22-07-2012 kl. 15:31
Hej,

I den vedhæftede eksempel fil vil jeg gerne i en forespørgsel få middel værdien for beløbet for Jan 2011, denne værdi skal jeg så gerne dividere med 100 og gange i alle beløb forekomster af Jan 2012.
kolonne a = Måned, Kolonne b = år, Kolonne c= beløb

Upload virker så ikke alligevel, men jeg håber jeg har forklaret mig tydeligt ellers spørg endeligt.

Eller sagt på en anden måde, hvordan tager jeg resultatet af en forespørgsel og bruger den i en anden (opdatere) forespørgsel.



Vh Rassten
Til top



Til top
hkh Se dropdown
Sølv bruger
Sølv bruger


Medlem: 15-08-2012
Status: Offline
Point: 320
Direkte link til dette indlæg Sendt: 16-08-2012 kl. 08:04
Hej Rassten

Jeg ved ikke om du har fået løst problemet, men VB kunne være løsningen.

tabel1 indeholder dine data:
felterne måned,år og beløb
Fra en formular med 3 felter og en knap, kan beløbet justeres. Felterne skal indeholde [måned], [gammelt år] og [nytår]
Når der klikkes på knappen kaldes knap_justering()

Private Sub knap_Justering()

    Dim db As Object
    Dim data As Object
    Dim SqlTekst As String
    
    ' udregning af gennemsnit af sum, beløb fra tabel1, hvor måned og årstal indtastes i to felter (2011)
    SqlTekst = "SELECT DISTINCTROW Sum(Tabel1.beløb) AS [Sum Of beløb], Avg(Tabel1.beløb) AS Gennemsnit, Count(*) AS [Antal Of Tabel1] FROM Tabel1 GROUP BY Tabel1.måned, Tabel1.år HAVING (((Tabel1.måned)=" & FeltMedMåned & ") AND ((Tabel1.år)=" & FeltMedGl_År & "));"
       
    Set db = Application.CurrentProject.Connection
    Set data = CreateObject("ADODB.Recordset")
    data.Open SqlTekst, db, 1
    
    ' hvis der ingen poster er til beregning af gennemsnit, afbrydes justeringen med en meddelse
    If data.EOF = True And data.BOF = True Then
        MsgBox "Der er ingen poster, der svarer til årstal og måned i det gl. år.", vbInformation + vbOKOnly
        GoTo Afslut
    End If
    
    ' Det udregnede gennemsnit divideres med 100 og gemmes i 'justering'
    Justering = data!gennemsnit / 100
    
    ' udvælg måneder fra 2012.
    SqlTekst = "SELECT Tabel1.id, Tabel1.måned, Tabel1.år, Tabel1.beløb FROM Tabel1 WHERE (((Tabel1.måned)=" & FeltMedMåned & ") AND ((Tabel1.år)=" & FeltMedNyt_År & "));"
    data.close
    data.Open SqlTekst, db, 1
    
    ' hvis der ingen poster er til justering, afbrydes justeringen med en meddelse
    If data.EOF = True And data.BOF = True Then
        MsgBox "Der er ingen poster, der svarer til årstal og måned i det nye år.", vbInformation + vbOKOnly
        GoTo Afslut
    End If
    
    
    ' opdatering af beløb
    While data.EOF = False
        data.Edit
        data!beløb = data!beløb * Justering
        data.Update
        data.MoveNext
    Wend
       
Afslut:
    data.Close
    Set data = Nothing
    Set db = Nothing
    
End Sub

Hans
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2013 - 2024 Dansk Access Forum - en del af Excel-regneark.dk