1.9k Aufrufe
Gefragt in Datenbanken von Einsteiger_in (13 Punkte)
Hallo!

Kann mir jemand helfen?

Ich habe eine Access (2003) Datenbank erstellt.
Darin habe ich verschieden Abfragen, und will nun daraus berichte erstellen.
Ist es möglich und wenn ja wie, dass ich einem bestehenden Bericht eine andere Datenquelle zuweisen kann… sprich einem Bericht den ich aus einer Abfrage erstellt habe, eine andere Abfrage als Quelle zuweisen…

Besten Dank und einen Schönen!

tr007

3 Antworten

0 Punkte
Beantwortet von marie Experte (2k Punkte)
Na wenn diese Abfrage dieselben Feldnamen hat. Andernfalls musst Du halt jeden einzelnen Feldnamen ändern, aber gehen tut das schon.

Klick mal in dem Bericht auf Entwurf (mach Dir erst eine Sicherheitskopie), dann auf Daten, Datenherkunft und ändere dann die Abfrage. Wenn die Textfelder andere Namen haben, dann klickst Du jedes Feld einzeln an und dort wieder auf "Daten" "Steuerelentinhalt" und änderst entsprechend den Namen.

Du kannst natürlich auch ungebundene Textfelder machen und diese beim Öffnen des Berichtes füllen, falls Du denselben Bericht mehrfach mit unterschiedlichen Daten verwenden möchtest.

Gruß Marie
0 Punkte
Beantwortet von marie Experte (2k Punkte)
"Steuerelentinhalt" soll natürlich "Steuerelementinhalt" heissen-
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo tr007,

falls du wirklich unterschiedliche Abfragen hast die auf unterschiedlichen Tabellen realisiert sind und die Felder, die du anzeigen willst gleich sind,kannst du dies beim "Report_Open" -Ereignis setzen. Dazu fügst du z.B.folgenden Code in den Bericht ein:
Private Sub Report_Open(Cancel As Integer)
If Me.OpenArgs = 1 Then
Me.RecordSource = "Abfrage1"
ElseIf Me.OpenArgs = 2 Then
Me.RecordSource = "Abfrage2"
End If
End Sub

Ich habe dann in einem Formular mal drei Buttons eingefügt und folgenden Code hinterlegt:
Private Sub Befehl0_Click()
DoCmd.OpenReport "Bericht1", acViewPreview, , , , 1
End Sub

Private Sub Befehl1_Click()
DoCmd.OpenReport "Bericht1", acViewPreview, , , , 2
End Sub
Je nachdem, welches "Openargs" ist verwende, wird die Abfrage1 oder Abfrage2 herangezogen.

Falls deine Abfragen sich alle auf mehr oder weniger eine Tabelle (oder join) beziehen, würde ich anders vorgehen. Dann benutzt du den "where"-Parameter von Openreport, Bsp.:
Private Sub Befehl3_Click()
DoCmd.OpenReport "Bericht1", acViewPreview, , "Nachname like '*mann'"
End Sub
und bindest die Grundtabelle an den Report.

Wie findest du diesen Ansatz?

Gruß
Ralf
...