2 buttonwaarden als parameter voor query

Status
Niet open voor verdere reacties.

sis123

Gebruiker
Lid geworden
17 feb 2005
Berichten
284
Dag,

Via een formulier wil ik het volgende :

een query aansturen via een knop die de waarde month en kostenplaats(KPL) meekrijgt

de knop dient om geen honderd queries te maken

doel :

een overzichtsformulier met daarop een knop per maand en per KPL om zo een respectievelijke grafiek te krijgen

dus als ik op de knop klik die als standaardwaarden KPL "IMA" month 4 heeft dan moeten deze als variabele in de query dit filteren

ik geraak er niet uit

-----

in de query parameters OF niet EN zie vbje - wil je even nazien ?
 

Bijlagen

Laatst bewerkt:
Op dit moment doet de knop niet zoveel; is het de bedoeling dat je parameters, zoals maand en kostenplaats selecteert m.b.v. bijvoorbeeld keuzelijsten, en dat je vervolgens die parameters aan de knop hangt, zodat je een query opent met de gekozen instellingen?

Michel
 
Op dit moment doet de knop niet zoveel; is het de bedoeling dat je parameters, zoals maand en kostenplaats selecteert m.b.v. bijvoorbeeld keuzelijsten, en dat je vervolgens die parameters aan de knop hangt, zodat je een query opent met de gekozen instellingen?

Michel

geen keuzelijst ,

Private Sub ima_Click()
Dim KPL

'Dim Datum
KPL = "IMA"
'Datum = 4
MsgBox KPL

DoCmd.OpenQuery "Qry_MAAND_KPL", acViewNormal

End Sub

en

standaardwaarde per knop is in mijn voorbeeld bv 4 voor month
 
Als je deze code onder een knop hangt moet het werken.

Code:
Dim sKPL As String, iMaand As Integer, strSQL As String

sKPL = "IMA"
iMaand = 5

strSQL = "SELECT PRODmain.Datum AS CumDt, Sum(PRODmain.Gemaakt) AS Gemaakt, " _
    & "Sum(PRODmain.Temaken) AS Temaken,"
strSQL = strSQL & "DSum(" & Chr(34) & "Gemaakt" & Chr(34) & "," & Chr(34) & "PRODmain" & Chr(34) _
    & "," & Chr(34) & "cDbl(Datum)<=" & Chr(34) & " & CDbl([CumDt]) & " & Chr(34) _
    & "AND KPL='IMA'" & Chr(34) & ") AS CumGM,"
strSQL = strSQL & "DSum(" & Chr(34) & "Temaken" & Chr(34) & "," & Chr(34) & "PRODmain" & Chr(34) _
    & "," & Chr(34) & "cDbl(Datum)<=" & Chr(34) & " & CDbl([CumDt]) & " & Chr(34) _
    & "AND KPL='IMA'" & Chr(34) & ") AS CumTM,"
strSQL = strSQL & "Year([Datum]) AS Jaar, PRODmain.KPL, Month([Datum]) AS Maand" & vbCrLf
strSQL = strSQL & "FROM PRODmain" & vbCrLf
strSQL = strSQL & "GROUP BY PRODmain.Datum, PRODmain.KPL" & vbCrLf
strSQL = strSQL & "HAVING (Year([Datum])=Year(Now()) "
strSQL = strSQL & "AND PRODmain.KPL='" & sKPL & "' AND Month([Datum])=" & iMaand & ")"

CurrentDb.QueryDefs("Qry_MAAND_KPL2").SQL = strSQL
DoCmd.OpenQuery "Qry_MAAND_KPL2", acViewNormal


Je kunt, en daarom vroeg ik het, twee keuzelijsten op het formulier zetten voor KPL en Maand, die je dan vervolgens aan de variabelen toewijst, zodat je elke combinatie kunt opvragen die je wilt. Lijkt mij handiger dan hard incoderen. Als je wilt, zet ik hem wel als voorbeeldje neer.

Michel
 
Als je deze code onder een knop hangt moet het werken.

Code:
Dim sKPL As String, iMaand As Integer, strSQL As String

sKPL = "IMA"
iMaand = 5

strSQL = "SELECT PRODmain.Datum AS CumDt, Sum(PRODmain.Gemaakt) AS Gemaakt, " _
    & "Sum(PRODmain.Temaken) AS Temaken,"
strSQL = strSQL & "DSum(" & Chr(34) & "Gemaakt" & Chr(34) & "," & Chr(34) & "PRODmain" & Chr(34) _
    & "," & Chr(34) & "cDbl(Datum)<=" & Chr(34) & " & CDbl([CumDt]) & " & Chr(34) _
    & "AND KPL='IMA'" & Chr(34) & ") AS CumGM,"
strSQL = strSQL & "DSum(" & Chr(34) & "Temaken" & Chr(34) & "," & Chr(34) & "PRODmain" & Chr(34) _
    & "," & Chr(34) & "cDbl(Datum)<=" & Chr(34) & " & CDbl([CumDt]) & " & Chr(34) _
    & "AND KPL='IMA'" & Chr(34) & ") AS CumTM,"
strSQL = strSQL & "Year([Datum]) AS Jaar, PRODmain.KPL, Month([Datum]) AS Maand" & vbCrLf
strSQL = strSQL & "FROM PRODmain" & vbCrLf
strSQL = strSQL & "GROUP BY PRODmain.Datum, PRODmain.KPL" & vbCrLf
strSQL = strSQL & "HAVING (Year([Datum])=Year(Now()) "
strSQL = strSQL & "AND PRODmain.KPL='" & sKPL & "' AND Month([Datum])=" & iMaand & ")"

CurrentDb.QueryDefs("Qry_MAAND_KPL2").SQL = strSQL
DoCmd.OpenQuery "Qry_MAAND_KPL2", acViewNormal


Je kunt, en daarom vroeg ik het, twee keuzelijsten op het formulier zetten voor KPL en Maand, die je dan vervolgens aan de variabelen toewijst, zodat je elke combinatie kunt opvragen die je wilt. Lijkt mij handiger dan hard incoderen. Als je wilt, zet ik hem wel als voorbeeldje neer.

Michel


Lijkt te werken, fel bedankt :thumb:

Toch nog volgende expressie

strSQL = strSQL & "([CumGM]/[CumTM] AS RelGMTM,"

Kun je deze nog snel corrigeren, moet bijkomen in de knopcode
 
Staat in het voorbeeldbestandje...

Michel
 

Bijlagen

Staat in het voorbeeldbestandje...

Michel

Bedankt, weeral bijgeleerd :)

Hier dient de 'IMA' ook de variabele KPL te zijn als filter voor de tabel PRODmain

strSQL = strSQL & "DSum(" & Chr(34) & "Gemaakt" & Chr(34) & "," & Chr(34) & "PRODmain" & Chr(34) _
& "," & Chr(34) & "cDbl(Datum)<=" & Chr(34) & " & CDbl([CumDt]) & " & Chr(34) _
& "AND KPL='IMA'" & Chr(34) & ") AS CumGM,"
strSQL = strSQL & "DSum(" & Chr(34) & "Temaken" & Chr(34) & "," & Chr(34) & "PRODmain" & Chr(34) _
& "," & Chr(34) & "cDbl(Datum)<=" & Chr(34) & " & CDbl([CumDt]) & " & Chr(34) _
& "AND KPL='IMA'" & Chr(34) & ") AS CumTM,"

----

'IMA' vervangen door sKPL lukt niet
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan