Hallo,
ich mache das nicht mit Makros , sondern VBA (Visual Basic for Applications). Kann alles was Makros können und den Rest auch 
stKriterien = "EAKNr = " & Me![EAKNr]
stKriterien ist eine Stringvariable (enthält Text), in die ich die WHERE-Klausel herein schreibe.
"EAKNr = " ist Klartext, im Bericht kommt das Feld EAKNr vor und im Bericht sollen nur die Datensätze (besser der eine Datensatz) vorkommen, die die Bedingung erfüllen.
& ist der Verkettungsoperator für Zeichenketten, verbindet in meiner Stringvariablen den Klartext mit
Me![EAKNr] Me ist eine Abkürzung für die Bezeichnung des Formulars, auf den sich der Button befindet. Außerdem muß sich das Feld EAKNr auch auf dem Formular befinden. (EAKNr ist bei mir ein Autowert, der den Datensatz eindeutig kennzeichnet.) Wenn im aktuellen Datensatz EAKNr z. B. 9 ist, steht in stKriterien dann drinnen „EAKNr = 9“ und mit diesem Filter wird dann der Bericht geöffnet.
Ich habe mal im meinen Makro-Editor geschaut (war ganz voll Staub), Access 97 übrigens, da kann man bei Öffnen Bericht unter „Bedingung“ mit Hilfe des Formeleditors wohl auch so einen Ausdruck konstruieren. Schau mal daherein und steig möglichst bald auf VBA um.
Ulrich