Filter probleempje

Status
Niet open voor verdere reacties.

Dorine75

Gebruiker
Lid geworden
27 jul 2009
Berichten
16
Hallo allemaal,

Ik kom niet helemaal uit een filter en hoop dat jullie mij kunnen helpen.

Ik heb een Formulier (SelectieKeyAM_CM) met daarop een Listbox (SelectKeyAM) en een button (SpecifiekeAM_bekijk).

Op het formulier kun je een accountmanager uit een lijstje selecteren. Het is de bedoeling dat op basis van de geselecteerde accountmanager, de accountplannen van alleen die geselecteerde persoon getoond worden.

Wanneer er op de button geklikt wordt, gebeurt het volgende:

Code:
Private Sub SpecifiekeAM_bekijk_Click()

 Rapporten_afdrukken acPreview

End Sub

Sub Rapporten_afdrukken(PrintMode As Integer)
    Dim SelectKeyAM As String
    SelectKeyAM = Me.SelectKeyAM

    DoCmd.OpenReport "Accountplannen per AM", PrintMode, , "'" & SelectKeyAM & "'"
    
    DoCmd.Close acForm, "SelectieKeyAM_CM"

End Sub
Op het Report (Accountplannen per AM) staat het veld (Crossmedia Key accountmanager) en hierop heb ik een filter gezet:
(Crossmedia Key accountmanager = Forms![SelectieKeyAM_CM]!SelectKeyAM)

Het idee was dat ik nu alleen die accountplannen zou zien van de accountmanager die ik geselecteerd had. Maar ik krijg alle accountplannen te zien...dus zonder filter. Omdat ik geen foutmelding krijg, heb ik geen idee waar ik het moet zoeken. Met de debugger lijkt alles goed te gaan. Heeft iemand een idee?

Alvast super bedankt!

Groeten,
Dorine
 

Bijlagen

Laatst bewerkt:
Wat je kunt doen, is het volgende:
Open het rapport vanuit je formulier in de Hidden modus.
Lijkt niet heel zinvol, maar dat komt nog...
Vervolgens lees je de RecordSource van het rapport uit, door hem in een variabele te zetten, bijv. sTabel. Het beste kun je voor je rapport een ongefilterde bron nemen, dus een query of tabel werkt het best.
Je maakt nu een query aan, die je op het rapport gaat zetten, bijvoorbeeld

stSQL="SELECT * FROM " & sTabel & "WHERE SelectKeyAM = '" & Me.SelectKeyAM & "'"

Als laatste zet je de query terug op het rapport, en kun je het rapport sluiten met de optie SaveYes uiteraard, anders ben je de bron weer kwijt.
Daarna open je het rapport nogmaals, maar nu uiteraard zichtbaar.

Michel
 
Hoi Michel,

Hoe open ik het rapport vanuit het formulier in de Hidden modus? Is dit een parameter?
Ennuh, hoe lees ik de RecordSource van het rapport uit? Ik heb helaas nog niet zoveel ervaring met Access. En hoe zet ik de query weer terug op het rapport? Helaas heb ik iets meer uitleg nodig :confused:

Groeten,
Dorine
 
Aanvulling hier op: natuurlijk zou het met een gewone filtering ook moeten werken; de structuur ziet er dan zo uit:

Code:
    stLinkCriteria = "[FormulierID]=" & sFormNr
    DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria


Ik zal de eerdere techniek zo netjes uitleggen...

Michel
 
Ik heb de bovenstaande filtering geprobeerd te gebruiken maar dan gebeurt hetzelfde (geen foutmelding en alle accountplannen worden getoond).

Hopelijk heb je tijd om het iets verder uit te leggen. Overigens heb ik bij de eerste post een deel van de database toegevoegd...misschien dat het wat duidelijker maakt.

Groeten,
Dorine
 
Hoi Dorine,

Ik moest even graven, want ik heb onlangs ongeveer hetzelfde probleem aan iemand anders uitgelegd. Het draadje kun je hier vinden:

http://www.helpmij.nl/forum/showthread.php?t=432601&highlight=Hidden

De oplossing is ongeveer zoiets:

Om het rapport in te stellen gebruik ik onderstaande code die achter de knop zit:

Code:
Code:
    sTabel = "De query die je op het rapport wilt hebben."
    stDocName = "rNetwork_Resultaten"
    DoCmd.OpenReport stDocName, acViewDesign, , , acHidden
    sRapport = Reports![rnetwork_resultaten].RecordSource
	'Kun je eerst controleren wat er op het rappport staat.
    MsgBox sTabel & vbLf & vbLf & sRapport
	'Nieuwe query op het rapport plaatsen en rapport bewaren
    Reports![rnetwork_resultaten].RecordSource = sTabel
    DoCmd.Close acReport, "rNetwork_Resultaten", acSaveYes
    DoCmd.Close acForm, "fData_Results", acSaveNo
    DoCmd.OpenReport stDocName, acPreview

Hier zit de grap in de regel: 'DoCmd.OpenReport stDocName, acViewDesign, , , acHidden'

Deze regel opent het rapport in de Hidden modus, zodat je de Recordsource kunt opvragen in een variabele, en vervangen door de query die je op het formulier gebruikt. Daarna sla je het rapport op, en kun je het zichtbaar opnieuw openen. De Msgbox zit er tusen, als je wilt controleren wat de broncode en de nieuwe code voor het rapport is.

Michel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan