PDA

Vollständige Version anzeigen : SQL und Bericht


schlarb
11.05.2001, 07:55
Hallo zusammen,
Ich möchte über einen Schalter mehrere Berichte auswählen hierzu muß der Bericht mittels SQL Befehl zuerst gefüllt werden.
Frage:
Wie erstelle ich den SQL Befehl und wie bekomme nun die SQL Daten in den Bericht.
Gruß Michael

Ivonne
11.05.2001, 09:17
Hallo Michael,
SQL ist eine eigenständige Sprache die nicht gerade in 2 Sätzen zu erklären ist, für jemand der noch nie mit SQL vertraut war.
Aber wenn Du in Access unter Objekte auf Abfragen gehst, dann kannst Du Dir mit Hilfe des Abfrageassistenten bzw. Du wählst die Entwurfsansicht aus, eine Abfrage zusammen klicken.
Du erstellst Dir auf diese Art dann automatisch einen SQL - Befehl der hinter der Grafikanwendung läuft.
Du kannst dann auch jeder Zeit den SQL - Befehl den Du Dir durch das zusammen klicken erstellt hast ansehen in dem Du links oben die SQL - Ansicht auswählst.
Deine fertige Abfrage bindest Du dann in Deinem Bericht ein.

Bericht:
Da kannst Du Dir mit Hilfe des Berichtassistenten bzw. Du wählst die Entwurfsansicht aus Dir einen Bericht erstellen.

Für den Fall Du entscheidest Dich für die Entwurfsansicht, dann gehe mit der rechten Maustaste rechts oder unten auf die graue Fläche und wähle Eigenschaften aus.
Wenn das Eigenschaftsfenster auf ist gibt es eine Registerkarte die heißt Daten. In der gehst Du auf Datenherkunft und bindest da Deine Abfrage ein, wenn Du Sie zuvor erstellt, bezeichnet und gespeichert hast.
Oben in der Leiste findest Du ein Icon das nennt sich Feldliste, darin kannste dann Deine Felder auswählen die in Deinem Bericht zu sehen sein die auf Deine zuvor erstellte Abfrage zugreift.

Brauchst Du einen SQL - Befehl weil Du ihn in VBA einbinden willst und kommst nicht klar damit dann mußt Du etwas mehr Angaben über Deine Tabellen, Beziehungen, Spalten machen in einer weiteren Frage von Dir.

Gruß
Ivonne

schlarb
11.05.2001, 09:48
Also Problem;
Eine Tabelle aus der einige Optionen bestimmt werden Sollen:
Beispiel SQL:
SELECT Pers_Zeiten.Id_Pers_Zeiten, Sperrmeldung.Fehlerbeschreibung, Pers_Zeiten.Rech_Nr, Pers_Zeiten.Rekl_Nr, Pers_Zeiten.Name, Pers_Zeiten.Pers_Nr, Pers_Zeiten.Zeit, Pers_Zeiten.Datum, Pers_Zeiten.Abt, Pers_Zeit_index.PerIndex
FROM (Pers_Zeiten INNER JOIN Sperrmeldung ON Pers_Zeiten.Rekl_Nr = Sperrmeldung.Rekl_Nr) INNER JOIN Pers_Zeit_index ON Pers_Zeiten.Index = Pers_Zeit_index.Index;

Diese SQL-Abfrage soll nun den Bericht steuern.
Was muß ich tun um per VBA den Bericht aufzurufen (SQL + Berichtsname).
Es geht nicht darum wie ich die einzelnen Berichte steuere, nur wie bekommen ich die SQL-Abfrage in den Bericht (z.B. RecodeSource)
Gruß Michael

WAG
11.05.2001, 10:26
Du könntest z.B. die SQL in ein Feld des Formulars speichern. Im Open Bericht Ereignis dann den Feldinhalt als Recordsource
des Berichtes nehmen.

Dieter

kaybuch
11.05.2001, 10:29
Hallo Michael,
mir ist noch nicht ganz klar was die mit SQL-String als Datenquelle meinst. wird der Dynamisch erstellt?
Yvonne hat schon recht, eine Abfrage in der SQL - Ansicht betrachten, den SQL-Code reinkopieren und unter einem AbfrageNamen speichern. Im Bericht in den grauen Hintergrund ein Rechtsklick, Eigenschaften, Reiter Daten, bei Kombobox Datenherkunft die eben erstellte Abfrage einstellen - oder auf die drei kleinen punkte klicken, Menu im Ansicht SQL auswählen und dort den SQL-String reinkopieren.

Man kann schon per VBA einen Bericht generieren ohne ihn im Berichtsfenster zu haben. Aber wer will das? Erstens eine RIESENARBEIT - zweitens mega unkomfortabel.

Wahrscheinlich mußt du mal erklären was du mit Bericht "steuern meinst". Heißt das als Datengrundlage dienen?
Gruß
Kay

schlarb
11.05.2001, 12:36
Steueren gleich --> Datenherkunft.
Aber vielleicht jetzt;
Aufgabe:
Gleicher Bericht, aber als Grundlage (Datenherkunft) wird immer die Abfrage (SQL)benötigt. In einem Form, gibt es unterschiedliche vordefinierte Auswahlkriterien. Je nach Auswahl muß eine neue Abfrage durchgeführt werden. Ich weiß wohl das man das ganze auch anderst steuern kann, hätte aber lieber ganze als SQL gelöst.
Gruß Michael.

Ivonne
11.05.2001, 13:31
Hi Michael,
Jeder Bericht basiert auf eine Abfrage !

Wenn ich Dich recht verstanden habe willst Du mit einem Bericht alles verwalten.

Dann versuche es mal so:

1.) Erstelle für jeden Bericht eine Abfrage.
2.) Mache aus allen Berichten --> Unterberichte --> in dem Du in der Toolbox Unterformulare / Berichte auswählst.
3.) Diesen Unterbericht in Deinem Hauptbericht einfügst.
4.) Das kannste mit allen Berichten so tätigen das Sie übereinander liegen.
5.) Verwende in der Toolbox Befehlsschaltflächen oder Optionsfelder.
6.) z. B. Jede Befehlsschaltfläche ruft dann einen anderen Bericht auf.
7.) Damit dies geht mußte Show and Hide verwenden, damit nur der Bericht aktiv ist den Du sehen willst und die anderen nicht sichtbar sind.

Ich hoffe dieser Vorschlag kommt deinem Wunsch näher, den Du verwirklichen willst.

Gruß
Ivonne

kaybuch
11.05.2001, 16:10
Hallo,
setz den bericht auf eine tabelle auf namens xyz. tabelle löschen.
auf dem formular wenn du in der optionsgruppe deine auswahl getroffen hast: "create table xyz laber rabarber" dann bericht darauf ablaufen lassen, beim bericht schließen "drop table xyz ..."
laberrabarber steht für den SQL-String den du dann noch anpasen mußt.
gruß
Kay