Resultatet af 1 forespørgsel i en 2 forespørgsel
Udskrevet fra: Dansk Access Forum
Kategori: Hjælp til Access
Forum navn: Forespørgsler og SQL scripts (Query)
Forum beskrivelse: Spørgsmål relateret til SQL og forespørgsler
Web-adresse: https://www.accessforum.dk/forum_posts.asp?TID=7
Udskrevet den: 18-01-2025 kl. 06:45
Emne: Resultatet af 1 forespørgsel i en 2 forespørgsel
Besked fra: rassten
Emne: Resultatet af 1 forespørgsel i en 2 forespørgsel
Posteringsdato: 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
|
Svar:
Besked fra: hkh
Posteringsdato: 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
|
|