Supportnet / Forum / Datenbanken
Berichte in Access
Frage
Hallo zusammen,
ich hab eine Access DB mit mehreren Tabellen. Die Inhalte will ich nun irgendwie auswerten lassen.
Am besten wäre es wenn der Anwender nur auf einen bestimmten Bericht klicken muss, dann wählt er aus was er sehen will (z.B. Kunde 2 und Kunde 3) und dann diese ausgewählten Kunden aufgelistet bekommt. Für den Anwender sollte das alles am besten Z sein ohne das dieser irgendwelche SQL Kenntnisse etc. braucht.
Kann ich in Access so etwas realisieren ? Muss ich hierzu extra etwas programmieren oder reicht es wenn ich SQL etc. kann ?
Danke für Eure Hilfe
Antwort 1 von oliverV
Hallo Horst,
so was ist machbar, allerdings kann es sehr aufwendig werden.
Erstelle ein Auswahlformular, in dem sich der Anwender die verschiedenen Kriterien für seinen Bericht zusammenbauen kann.
Wenn es darum geht ob ein Feld angezeigt werden soll oder nicht, kannst du das einfach mittels Kontrollkästchen lösen.
Wenn du allerdings Filter bzw. Bedingungen setzten willst, verwende ungebundene Kombifelder, bei denen du z.B. den Kunden auswählst, bei mehreren Kunden ein Listenfelder.
Sortierungen kannst du am Besten über Optionsgruppen lösen.
Erstelle nun eine Schaltfläche zum Öffnen des Auswertungsformulare oder des Berichts.
Beim Öffnen des Formulars (Berichts) muss du nun die Datenherkunft anhand der ausgewählten Kriterien dynamisch zuweisen.
Dim SQL1 As String, SQL2 As String, SQLges As String
If Forms![Auswahlformular]![Feld1] = 1 Then
SQL1 = “SELECT DISTINCTROW Tabelle1.Feld1, bla, bla”
Else
SQL1 = “SELECT DISTINCTROW Tabelle1.Feld2, blub, blub”
End If
If Forms![Auswahlformular]![Sortierfeld1] = 1 Then
SQL2 = “ORDER BY bla, bla”
Else
SQL2 = “ORDER BY blub, blub”
End If
SQLges = SQL1 + SQL2
Form_Formularname.RecordSource = SQLges
So kannst du dir die gesamte Datenherkunft zusammenbauen, aber ich warne dich, es kann wirklich sehr aufwändig werden. Ich habe eine Produktionsdatenauswertung gemacht, bei der ich über 70 Variablen benötige um mein SQL-Statement zusammenzubauen. (Allerdings auch mit monatlicher Gruppierung).
Wenn du dir Felder nur teilweise anzeigen lassen willst, ist es wahrscheinlich auch notwendig, die Feldpositionen, anhand der ausgewählten Kriterien, zu verändern.
Me.Feld1.Left = 2154
Me.Feld1.Top = 3855
Maßangaben musst du in Twips machen (1 cm = 567 Twips)
Du siehst also, du kommst um gewissen VBA-Vorkenntnisse nicht herum.
Gruß
Oliver
so was ist machbar, allerdings kann es sehr aufwendig werden.
Erstelle ein Auswahlformular, in dem sich der Anwender die verschiedenen Kriterien für seinen Bericht zusammenbauen kann.
Wenn es darum geht ob ein Feld angezeigt werden soll oder nicht, kannst du das einfach mittels Kontrollkästchen lösen.
Wenn du allerdings Filter bzw. Bedingungen setzten willst, verwende ungebundene Kombifelder, bei denen du z.B. den Kunden auswählst, bei mehreren Kunden ein Listenfelder.
Sortierungen kannst du am Besten über Optionsgruppen lösen.
Erstelle nun eine Schaltfläche zum Öffnen des Auswertungsformulare oder des Berichts.
Beim Öffnen des Formulars (Berichts) muss du nun die Datenherkunft anhand der ausgewählten Kriterien dynamisch zuweisen.
Dim SQL1 As String, SQL2 As String, SQLges As String
If Forms![Auswahlformular]![Feld1] = 1 Then
SQL1 = “SELECT DISTINCTROW Tabelle1.Feld1, bla, bla”
Else
SQL1 = “SELECT DISTINCTROW Tabelle1.Feld2, blub, blub”
End If
If Forms![Auswahlformular]![Sortierfeld1] = 1 Then
SQL2 = “ORDER BY bla, bla”
Else
SQL2 = “ORDER BY blub, blub”
End If
SQLges = SQL1 + SQL2
Form_Formularname.RecordSource = SQLges
So kannst du dir die gesamte Datenherkunft zusammenbauen, aber ich warne dich, es kann wirklich sehr aufwändig werden. Ich habe eine Produktionsdatenauswertung gemacht, bei der ich über 70 Variablen benötige um mein SQL-Statement zusammenzubauen. (Allerdings auch mit monatlicher Gruppierung).
Wenn du dir Felder nur teilweise anzeigen lassen willst, ist es wahrscheinlich auch notwendig, die Feldpositionen, anhand der ausgewählten Kriterien, zu verändern.
Me.Feld1.Left = 2154
Me.Feld1.Top = 3855
Maßangaben musst du in Twips machen (1 cm = 567 Twips)
Du siehst also, du kommst um gewissen VBA-Vorkenntnisse nicht herum.
Gruß
Oliver