query die andere query aanvult

Status
Niet open voor verdere reacties.

renzomassaro

Gebruiker
Lid geworden
26 sep 2006
Berichten
44
Hieronder een query, nu wil ik eigenlijk dat op het eind, waar naam staat, de naam komt te staan als ik via een andere query een selectie heb gemaakt uit een keuzemenu, kan dat?


SELECT [2006].Park, Count([2006].Park) AS AantalVanPark, Min([2006].Aankomst) AS MinVanAankomst, Max([2006].Aankomst) AS MaxVanAankomst
FROM 2006
GROUP BY [2006].Park
HAVING ((([2006].Park)="naam"));
 
Ja dat kan met een subquery.
Code:
SELECT [2006].Park, Count([2006].Park) AS AantalVanPark, Min([2006].Aankomst) AS MinVanAankomst, Max([2006].Aankomst) AS MaxVanAankomst
FROM 2006
WHERE ([2006].Park) IN (SELECT Parknamen FROM Tablename)
GROUP BY [2006].Park
Resultaat van je subquery mag meerdere parknamen zijn.
Code:
SELECT [2006].Park, Count([2006].Park) AS AantalVanPark, Min([2006].Aankomst) AS MinVanAankomst, Max([2006].Aankomst) AS MaxVanAankomst
FROM 2006
WHERE ([2006].Park) IN (SELECT Parknamen FROM Tablename WHERE Parknamen = 'naam')
GROUP BY [2006].Park
Hier krijg je hetzelfde resultaat als je uitgangs punt. Alleen weet je nu zeker dat de opgegeven naam voorkomt in de tabel Parknamen.

Succes!
 
Code:
SELECT [2006].Park, Count([2006].Park) AS AantalVanPark, Min([2006].Aankomst) AS MinVanAankomst, Max([2006].Aankomst) AS MaxVanAankomst
FROM 2006
WHERE [2006].Park = Forms!naamvanjeformulier!naamvanjekeuzelijst

Groet,

Tardis
 
Of bedoel je iets anders? Je kan namelijk op verschillende manieren een parameter doorgeven. De query:
Code:
SELECT [2006].Park, Count([2006].Park) AS AantalVanPark, Min([2006].Aankomst) AS MinVanAankomst, Max([2006].Aankomst) AS MaxVanAankomst
FROM 2006
GROUP BY [2006].Park
HAVING ((([2006].Park)=[ParameterGeefnaam]));
Moet zijn opgeslagen.
Code:
    Dim qrySel As QueryDef
    Dim rstSel As Recordset

    Set qrySel = CurrentDb.QueryDefs("qryJouwnaam")
    qrySel.Parameters("ParameterGeefnaam").Value = me.txtNaam
    Set rstSel = qrySel.OpenRecordset(dbOpenSnapshot)
Of maak een nieuwe query waar de waarde reeds inzit.
Code:
Dim strsql as string

strsql = "SELECT [2006].Park, Count([2006].Park) AS AantalVanPark, Min([2006].Aankomst) AS MinVanAankomst, Max([2006].Aankomst) AS MaxVanAankomst
FROM 2006
GROUP BY [2006].Park
HAVING ((([2006].Park)=" & me.txtNaam & "));

MakeQueryDef(strTempQryName, strSql)
MakeQueryDef en DeleteQueryDef
Code:
Public Function MakeQueryDef(strSQLname As String, strSQLdef As String) As Boolean

   Dim qdf As QueryDef
   Dim dbs As Database

   On Error GoTo Err_MakeQueryDef

   Set dbs = CurrentDb

   DeleteQueryDef strSQLname ' Query weggooien als die bestaat

   Set qdf = dbs.CreateQueryDef(strSQLname, strSQLdef)

   MakeQueryDef = True

Exit_MakeQueryDef:
   Exit Function

Err_MakeQueryDef:
   MakeQueryDef = False
   MsgBox "Fout in MakeQueryDef : " & Err.Number & ":" & Err.Description, vbExclamation, "Fout bij maken query definitie."
   Resume Exit_MakeQueryDef
End Function

Public Sub DeleteQueryDef(strSQLname As String)

   Dim dbs As Database

   Set dbs = CurrentDb

   On Error Resume Next
   dbs.QueryDefs.Delete strSQLname 'Genereert fout als query niet bestaat.

End Sub

Wees creatief.

Enjoy!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan