Datenherkunft eines Unterberichts zur Laufzeit ändernDie Datenherkunft eines Unterberichts lässt sich nach dem Öffnen eines Berichts nicht mehr ändern - zumindest nicht durch herkömmliches Zuweisen der Datenherkunft per VBA. Eine Alternative ist die Verwendung einer gespeicherten Abfrage, die man beim Öffnen des Hauptberichts mit einem neuen SQL-Ausdruck versieht.
BeispieldatenbankEine Datenbank mit dem hier vorgestellten Beispielbericht finden Sie unter folgendem Link:

AnwendungszweckNormalerweise bindet man die Daten in Unterberichten an die des Hauptberichts, sodass der Unterbericht beispielsweise die Projekte zu einem Kunden anzeigt. Manchmal geht dies allerdings nicht, weil die Daten von Haupt- und Unterbericht nicht entsprechend verknüpft sind. Abfrage vorbereitenAls Abfrage kann man eine x-beliebige Abfrage verwenden - hauptsache, sie ist unter dem gewünschten Namen gespeichert und wird nicht für irgendeinen anderen Zweck benötigt. Stellen Sie dann die Eigenschaft Datenherkunft des Unterberichts auf diese Abfrage ein. Datenherkunft anpassenDas Anpassen der Datenherkunft des Unterberichts findet dann in der Beim Öffnen-Ereignisprozedur des Hauptberichts statt. Dort heißt es dann beispielsweise:
Private Sub Report_Open(Cancel As Integer)
Dim db As DAO.Database
Dim strSQL As String
Set db = CurrentDb
strSQL = "SELECT * FROM Artikel WHERE Artikelname LIKE 'C*'"
db.QueryDefs("qryArtikelDummy").SQL = strSQL
End Sub
Am Unterberichts selbst ändert diese Routine gar nichts, sondern nur an der zugrunde liegenden Abfrage: Der weist sie den neuen SQL-Ausdruck zu. Nach dem Öffnen zeigt der Unterbericht schließlich die gewünschten Datensätze an.
|