2009-08-12 5 views

Antwort

3

Sie können einen Bericht wie folgt geöffnet:

DoCmd.OpenReport "reportFoo", acPreview, , , , Me.Name 

und so etwas wie dies in dem Bericht:

Private Sub Report_Open(Cancel As Integer) 
    If "" <> Me.OpenArgs Then 
     MsgBox Me.OpenArgs ' display caller form's name 
    End If 
End Sub 
+0

Ich habe es auf Ms Access 2003 getestet, bevor ich es poste. –

+0

Der OpenArgs-Parameter war in Access vor 2002 nicht vorhanden, denke ich (ich bin mir nicht sicher, ob es 2002 war, es wurde 2003 eingeführt). –

1

Dies ist nicht möglich, es sei denn, Sie richten es selbst ein. Sie könnten in eine Variable schreiben oder, wenn das Formular offen bleibt, die Informationen im Formular speichern.

+0

Umm, wenn er nicht weiß, welche Form den Bericht öffnet, wie kann er den Formularnamen im Bericht speichern? –

+0

Sorry, aber ich verstehe Ihren Punkt nicht, ich sagte, speichern Sie die Informationen auf dem Formular, wenn das Formular geöffnet bleibt, können die Formulare aus dem Bericht überprüft werden, oder das Formular und der Bericht Name werden in eine Variable geschrieben, yesno? – Fionnuala

1

Eine Möglichkeit, eine report_caller Klasse haben, ist, dass alle Berichte immer geöffnet. Es benötigt eine Methode namens "openReport", die den Namen des Formulars übernimmt, das den Aufruf ausführt, und den Namen des geöffneten Berichts. Dann kann eine öffentliche Methode verwendet werden, damit der Bericht den Namen des geöffneten Formulars erhält.