Supportnet / Forum / Datenbanken
Access Bericht mit mehreren Abfragen
Frage
Hi,
ist es möglich in Access 2003, einen Bericht zu erstellen, der beim Öffnen nach der zugrundeliegenden Abfrage frägt ? Also dass beim Öffnen des Berichtes ein Dropdown aufgeht, indem ich die Abfrage oder Tabelle auswählen kann ?
Antwort 1 von RalfH
Hallo golo 108
Ja mit VBA ist das möglich.
Gruß Ralf
Ja mit VBA ist das möglich.
Gruß Ralf
Antwort 2 von golo108
Hi Ralf,
schön so ! Gibt es vielleicht irgendwo ein Beispiel dafür für Leute wie mich, die mit VBA nichts ma Hut haben ?
schön so ! Gibt es vielleicht irgendwo ein Beispiel dafür für Leute wie mich, die mit VBA nichts ma Hut haben ?
Antwort 3 von Teddy7
Wenn´s nicht viele Abfragen sind mach verschiedene Berichte und ruf den passenden Bericht auf
Gruß
Teddy
Gruß
Teddy
Antwort 4 von RalfH
Guten Morgen golo 108,
OK, ich beschreib Dir mal einen möglichen Lösungsweg.
1. Achte darauf das die Felder im Bericht auch von der jeweiligen Abfrage. bzw. Tabelle abgedeckt werden.
2. Erstell Dir ein Formular, dort erstellst Du dir eine Options-Gruppe. Hier als Beispiel 5 Optionen.
3. Einen Button erstellen " Bericht aufrufen"
RechtsKlick auf den Button - Eigenschaften-Bei Klick bitte folgendes Einkopieren:
Gruß Ralf
OK, ich beschreib Dir mal einen möglichen Lösungsweg.
1. Achte darauf das die Felder im Bericht auch von der jeweiligen Abfrage. bzw. Tabelle abgedeckt werden.
2. Erstell Dir ein Formular, dort erstellst Du dir eine Options-Gruppe. Hier als Beispiel 5 Optionen.
3. Einen Button erstellen " Bericht aufrufen"
RechtsKlick auf den Button - Eigenschaften-Bei Klick bitte folgendes Einkopieren:
Function Berichte_nach_Optionsgruppe()
With CodeContextObject
If (.Rahmen0 = 1) Then
DoCmd.OpenReport "DEINBericht1", acViewPreview, "", "", acNormal
End If
If (.Rahmen0 = 2) Then
DoCmd.OpenReport "DEINBericht2", acViewPreview, "", "", acNormal
End If
If (.Rahmen0 = 3) Then
DoCmd.OpenReport "DEINBericht3", acViewPreview, "", "", acNormal
End If
If (.Rahmen0 = 4) Then
DoCmd.OpenReport "DEINBericht4", acViewPreview, "", "", acNormal
End If
If (.Rahmen0 = 5) Then
DoCmd.OpenReport "DEINBericht5", acViewPreview, "", "", acNormal
End If
End With
End FunctionGruß Ralf
Antwort 5 von erik
Ich würde eher empfehlen, dem Bericht eine feste Abfrage zuzuweisen und vor dem Öffnen des Berichts die Abfrage inhaltlich neu zu schreiben. Es würde sogar reichen, darin ein "SELECT *" auf die aktuelle Abfrage durchzuführen. Damit fällt das mehrfache Pflegen von Berichten auch weg.
Das folgende Beispiel entscheidet anhand irgendwelcher Bedingungen, welche Abfrage heranzuziehen ist. Diese Abfrage wird wiederum in die Abfrage geschrieben, die direkt am Bericht hängen soll (hier: qryBerichtsAbfrage).
Das folgende Beispiel entscheidet anhand irgendwelcher Bedingungen, welche Abfrage heranzuziehen ist. Diese Abfrage wird wiederum in die Abfrage geschrieben, die direkt am Bericht hängen soll (hier: qryBerichtsAbfrage).
Public Sub AbfrageAendernDemo()
Dim db As Database
Dim qdf As QueryDef
Dim strQuery As String
If <Bedingung1> Then
strQuery = "qryAbfrage1"
ElseIf <Bedingung2> Then
strQuery = "qryAbfrage2"
ElseIf <Bedingung3> Then
strQuery = "qryAbfrage3"
Else
strQuery = "qryAbfrage1"
End If
Set db = CurrentDb
Set qdf = db.QueryDefs("qryBerichtsAbfrage")
With qdf
.SQL = "SELECT * FROM " & strQuery & ";"
.Close
End With
Set qdf = Nothing
Set db = Nothing
End SubAntwort 6 von RalfH
@ erik,
Kompliment, eine sehr Komfortable Lösung.
Gruß Ralf
Kompliment, eine sehr Komfortable Lösung.
Gruß Ralf
Antwort 7 von golo108
Hi,
vielen Dank für die Lösungen. Hören sich alle gut an und Erik deine Lösung, da werde ich mal das Wochenende brauchen, es zu verdauen....
Vielen Dank
Golo
vielen Dank für die Lösungen. Hören sich alle gut an und Erik deine Lösung, da werde ich mal das Wochenende brauchen, es zu verdauen....
Vielen Dank
Golo

