Supportnet Computer
Planet of Tech

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

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 ?

Antwort 3 von Teddy7

Wenn´s nicht viele Abfragen sind mach verschiedene Berichte und ruf den passenden Bericht auf
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:

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 Function


Gruß 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).

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 Sub


Antwort 6 von RalfH

@ erik,

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: