umfangreicher Bericht mit Access2000 erstellen
Hallo,
ich habe eine Datenbank mit ca. 50.000 Datensätze auf der Basis von ca. 7 Tabellen. Eine Tabelle bildet in der Regel die Haupttabelle mit 1:n-Beziehungen. Allerdings bestehen die Tabellen nur aus Kennziffern. Ca. 250 Tabellen beinhalten jeweils die Kennziffer und einen entsprechenden langschriftlichen Text.
Jetzt kommt das Problem. Ich wollte eine oder mehrere Abfragen erstellen mit den benötigten Daten. Leider scheint das aber seine Grenzen zu haben. Denn eine Bericht mit den langschriftlichen Begriffen ist ab einer Zahl von ca. 25 Tabellen(-verknüpfungen) nicht mehr möglich.
Gibt eine Lösung dazu. Alle 255 Begriffe sollen in einen Bericht.
Danke vorweg.
Antwort schreiben
Antwort 1 von Teddy7 vom 08.11.2019, 08:32 Options
Verstehe ich das richtig ? Du hast 250 Tabellen, in denen jeweils ein Datensatz steht ???? Muß das sein ?
Üblicherweise macht man sowas in einer Tabelle:
Satzart (001 - 250); Kennziffer; Text
Über eine Abfrage kann man den gewünschten Text bekommen, indem man die Satzart als Kriterium setzt.
Alle Deine Probleme würden dadurch gelöst.
Gruß
Teddy
Antwort 2 von solu vom 08.11.2019, 10:08 Options
Ich möchte mich präzisieren. Anbei ein Beispiel nur bezogen auf die Haupttabelle (ca. 50.000 lfd. Nummern)und die ca. 250 Referenztabellen:
***
Tabelle Haupttabelle
lfd. Nr. ==> 1,2,3,4,... bis 50.000
Weinsorte_Nr ==> 1,2,3...
Lieferant_Nr ==> 1,2,3,4,...
*
Referenztabelle
Weinsorte_NR ==> 1,2,3,...
Weinsorte ==> Riesling, Burgunder, ...
*
Referenztabelle
Liefernant_NR ...
...
***
Ich möchte jetzt, dass ich eine Tabelle erhalte (bzw. im Anschluss einen Bericht erzeuge) in der nur die langschriftliche Bezeichnung steht:
***
Tabelle Haupttabelle
lfd. Nr. ==> 1,2,3,4,...
Weinsorte ==> Riesling, Burgunder, ...
Lieferant ==> ...
***
Leider klappt dies nur bis ca. 20-25 Referenztabellen als Abfrage und entsprechender Festlegung der Beziehungen.
Freue mich über jede Antwort.
Gruß
Solu
Antwort 3 von solu vom 08.11.2019, 10:20 Options
sorry, noch eine Ergänzung:
ich möchte im Bericht jeweils nur eine lfd. Nummer darstellen.
Also ca. 250 langschriftliche Texte. Ich denke, dass dies auf ca. 6 bis 7 Din-A-4 Seiten passt.
Gruß
Solu
Antwort 4 von RalfH vom 08.11.2019, 12:03 Options
Hallo,
Ui, wer möchte oder kann denn soviele Daten auf einmal verarbeiten ?
Das ganze ist doch total Überfrachtet und bringt keinen Mehrwert.
Weniger ist manchmal mehr !
Welche Fragenstellung beruht den auf dem Entwurf für einen Bericht?
Zum Beispiel welcher Lieferant liefert welche Weine ?
Gruß RAlf
Antwort 5 von Teddy7 vom 09.11.2019, 09:01 Options
Um die Diskussion mal abzuküzen:
Du kannst Im Bericht mit ungebundenen Feldern arbeiten, die im Ereignis "beim Formatieren" des entsprechenden Bereichs gefüllt werden mit VBA-Code.
Das kann z.B. so aussehen:
dim suche as string
suche = 'WeinId = ' & WeinKz
DWeinart = dlookup("Weinart", "tblWein", suche)
dabei sei WeinId der Feldname der lfdnr in der Tabelle tblWein und Weinart der Feldname des gewünschten Textfeldes.
Sollte das Schüsselfeld ein string (Text) sein, dann muß es zusätzlich in Hochkommas gesetzt werden.
////////
250 Tabellen sind trotzdem ein Unding. So teuer ist Speicherplatz nicht mehr. Da kannst Du ruhig statt der Kz auch mal den Text im Datensatz speichern.
////////
Gruß
Teddy
Antwort 6 von solu vom 09.11.2019, 10:47 Options
Hi Teddy7,
ich habe versucht die Anleitung umzusetzen. Leider klappt es nicht. Also, ich habe einen Bericht auf Grundlage der Haupttabelle (mit einer lfd. Nr.) mit dem Assistenten erzeugt. Die Felder enthalten jetzt nur Kennzahlen. Nun habe ich versucht eins dieser Textfelder nach deinen Anweisungen auf die Referenz zu beziehen .
Muß ich dieses Textfeld jetzt in ein anderes Ereignisfeld überführen?
Wo finde ich denn das Eregnis "beim formatieren"?
Was meinst du in deinem Beispiel mit "WeinKz"
*
Zum Hintergrund der Datenbank möchte ich noch erzählen, dass die Daten seit ca. 20 Jahren gesammelt werden. Wir haben uns nun für eine neue Software mit einer ganz anderen Logik entschieden. Das heißt, dass wir die Daten nur zu ca. 55% und nicht 1:1 in die neue Datenbank migrieren können. Um aber weiterhin eine Möglichkeit zu haben die Altdaten komplett auszudrucken (je lfd.Nr.) würden wir dies gerne
über Access realisieren.
*
Danke schön!!!
*
Gruß
Solu
Antwort 7 von Teddy7 vom 09.11.2019, 11:49 Options
Also - Du hast einen Bericht erstellt mit den Kennzahlfeldern.
Soweit so gut. Jetzt fügst Du in den Bericht zusätzlich UNGEBUNDENE Felder ein für die Texte - z.B. nennst Du ein ungebundenes Textfeld "DWeinart"
(die Kennzahlenfelder sind ja an das Kennzahlenfeld in´m Datensatz gebunden und können deshalb nicht verwendet werden).
Im Bericht gibt es Bereiche - z.B. der Detailbereich.
Wenn Deine Daten im Detail-Bereich angelistet werden dann klick rechts auf den Bereich - Du findest in den Eigenschaften u.A. das Ereignis beim Formatieren. Wenn Du auf diese Zeile klickst erscheint recht ein Icon mit 3 Punkten. Da klickst Du drauf und wählst Code-generator aus.
Es kommt dieses Bild:
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
End Sub
In den Zeile zwischen Private Sub und End Sub kann man jetzt VBA-Code schreiben.
Da definiert man sich eine Text-Variable (nur wegen der Übersichtlichkeit):
dim suche as string
Füllt diese mit den Suchkriterien:
suche = 'WeinId = ' & WeinKz
Sucht sich dann in der Tabelle den entsprechenden Wert und füllt ihn in ein ungebundenes Textfeld:
DWeinart = dlookup("Weinart", "tblWein", suche)
Das machst Du analog für alle 250 Textfelder. Die Ausführung des Berichts dauert dann etwas länger als üblich, aber das sollte im akzeptablen Bereich liegen.
Gruß
Teddy
Antwort 8 von Solu vom 09.11.2019, 13:43 Options
Hi Teddy7,
leider noch kein Erfolg.
Also, ich habe ein "ungebundenes Textfeld" erzeugt und bin über die rechte Maustaste auf "Eigenschaften" gegangen. Der Reiter "Ereignis" ist nur grau. Angaben werden nicht angezeigt. Unter dem Reiter "Alle" ist der Menüpunkt "beim formatieren" nicht vorhanden.
???
Gruß
Solu
Antwort 9 von Teddy7 vom 09.11.2019, 17:05 Options
Rechtsklick auf Detailbereich - Eigenschaften - Reiter Ereignis
Antwort 10 von solu vom 23.11.2019, 08:42 Options
Danke Teddy7,
ich habe es heute noch mal versucht und es hat geklappt. Irgendwie hatte ich ein Brett vor dem Kopf. Also, herzlichen Dank!
Solu