Hallo zusammen,
Leider habe ich ein Problem mit meiner Abfrage. Die Abfrage bezieht sich auf eine sehr große Tabelle (tbl_Maengelliste) und soll alle DS wiedergeben. Dies ist nicht der Fall. Ich habe versucht bei allen Feldern das Kriterium Ist Null ODER Ist nicht Null bzw. Wie "*" anzugeben. Leider stürtzt Access dabei ab. Ich gehe davon aus, dass es sich einfach um zu viele Felder/Kriterien handelt.
Hier der SQL Code meiner Abfrage (Fühlt euch bitte nicht erschlagen, die DB Struktur hätte ich gerne anders aufgebaut, aber es soll "alles" in einer Tabelle stehen, damit die Tabelle nach Bedarf zu Excel importiert werden kann)
SELECT tbl_Maengelliste.MängelID, tbl_Prüffeld.Prüffeld, tbl_Maengelliste.SchaltanlagenSerienNr, tbl_Maengelliste.Workorder, tbl_Maengelliste.KomissionsNr, tbl_Maengelliste.GesamtSerienNr, tbl_Anlagentyp.Anlagentyp, tbl_Schranktyp.Schranktyp, tbl_Kunden.Kunde, tbl_Maengelliste.Anlagenkennung, tbl_Maengelliste.Standort, tbl_Maengelliste.Land, tbl_Abteilung.AbteilungsName, tbl_Mitarbeiter.MitarbeiterName, tbl_Abteilung_1.AbteilungsName, tbl_Mitarbeiter_1.MitarbeiterName, tbl_Mitarbeiter_1.MitarbeiterName, tbl_Abteilung_2.AbteilungsName, tbl_Mitarbeiter_2.MitarbeiterName, tbl_Abteilung_3.AbteilungsName, tbl_Mitarbeiter_3.MitarbeiterName, tbl_Maengelliste.DatumPrüfbeginn, tbl_Maengelliste.DatumPrüfende, tbl_Maengelliste.ÜbertragenDurch, tbl_Maengelliste.QAATRZeit, tbl_Maengelliste.ATRNr, tbl_Maengelliste.Fehlerbeschreibung, tbl_Maengelliste.Ort, tbl_Maengelliste.BMK, tbl_Fehlerart.Fehlerart, tbl_Maengelliste.FestgestelltDatum, tbl_Abteilung_4.AbteilungsName, tbl_Mitarbeiter_4.MitarbeiterName, tbl_Abteilung_5.AbteilungsName, tbl_Anlagenstatus.Anlagenstatus, tbl_Maengelliste.BehobenDatum, tbl_Abteilung_6.AbteilungsName, tbl_Mitarbeiter_5.MitarbeiterName, tbl_Maengelliste.ATRZeit, tbl_Maengelliste.ÜberprüftDatum, tbl_Abteilung_7.AbteilungsName, tbl_Mitarbeiter_6.MitarbeiterName
FROM tbl_Schranktyp INNER JOIN (tbl_Prüffeld INNER JOIN (tbl_Kunden INNER JOIN (tbl_Fehlerart INNER JOIN (tbl_Anlagentyp INNER JOIN (tbl_Anlagenstatus INNER JOIN ((tbl_Abteilung INNER JOIN (tbl_Mitarbeiter AS tbl_Mitarbeiter_6 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_7 INNER JOIN (tbl_Mitarbeiter AS tbl_Mitarbeiter_5 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_6 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_5 INNER JOIN (tbl_Mitarbeiter AS tbl_Mitarbeiter_4 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_4 INNER JOIN (tbl_Mitarbeiter AS tbl_Mitarbeiter_3 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_3 INNER JOIN (tbl_Mitarbeiter AS tbl_Mitarbeiter_2 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_2 INNER JOIN (tbl_Mitarbeiter AS tbl_Mitarbeiter_1 INNER JOIN (tbl_Abteilung AS tbl_Abteilung_1 INNER JOIN tbl_Maengelliste ON tbl_Abteilung_1.AbteilungsID = tbl_Maengelliste.VPAbteilung) ON tbl_Mitarbeiter_1.MitarbeiterID = tbl_Maengelliste.VPServicemonteur) ON tbl_Abteilung_2.AbteilungsID = tbl_Maengelliste.HPAbteilung) ON tbl_Mitarbeiter_2.MitarbeiterID = tbl_Maengelliste.HPServicemonteur) ON tbl_Abteilung_3.AbteilungsID = tbl_Maengelliste.FIFCAbteilung) ON tbl_Mitarbeiter_3.MitarbeiterID = tbl_Maengelliste.FIFCServicemonteur) ON tbl_Abteilung_4.AbteilungsID = tbl_Maengelliste.FestgestelltAbteilung) ON tbl_Mitarbeiter_4.MitarbeiterID = tbl_Maengelliste.FestgestelltName) ON tbl_Abteilung_5.AbteilungsID = tbl_Maengelliste.ZuBehebenAbteilung) ON tbl_Abteilung_6.AbteilungsID = tbl_Maengelliste.BehobenAbteilung) ON tbl_Mitarbeiter_5.MitarbeiterID = tbl_Maengelliste.BehobenName) ON tbl_Abteilung_7.AbteilungsID = tbl_Maengelliste.ÜberprüftAbteilung) ON tbl_Mitarbeiter_6.MitarbeiterID = tbl_Maengelliste.ÜberprüftName) ON tbl_Abteilung.AbteilungsID = tbl_Maengelliste.SachbearbeiterAbteilung) INNER JOIN tbl_Mitarbeiter ON (tbl_Mitarbeiter.MitarbeiterID = tbl_Maengelliste.SachbearbeiterName) AND (tbl_Abteilung.AbteilungsID = tbl_Mitarbeiter.AbteilungsIDRef)) ON tbl_Anlagenstatus.AnlagenstatusID = tbl_Maengelliste.AnlagenstatusIDRef) ON tbl_Anlagentyp.AnlagentypID = tbl_Maengelliste.AnlagentypIDRef) ON tbl_Fehlerart.FehlerartID = tbl_Maengelliste.FehlerartIDRef) ON tbl_Kunden.KundeID = tbl_Maengelliste.KundeIDRef) ON (tbl_Prüffeld.PrüffeldID = tbl_Maengelliste.PrüffeldIDRef) AND (tbl_Prüffeld.PrüffeldID = tbl_Fehlerart.PrüffeldIDRef) AND (tbl_Prüffeld.PrüffeldID = tbl_Anlagentyp.PrüffeldIDRef)) ON tbl_Schranktyp.SchranktypID = tbl_Maengelliste.SchranktypIDRef
WHERE (((tbl_Mitarbeiter_5.MitarbeiterName) Is Null Or (tbl_Mitarbeiter_5.MitarbeiterName) Is Not Null));
Gibt es noch eine andere Möglichkeit für mich die Abfrage vollständig anzeigen zu lassen? Sprich auch mit Datensätzen, in denen es leere Felder gibt?
Hallo,
Zitat
(Fühlt euch bitte nicht erschlagen, die DB Struktur hätte ich gerne anders aufgebaut, aber es soll "alles" in einer Tabelle stehen, damit die Tabelle nach Bedarf zu Excel importiert werden kann)
Das ist doch absoluter Murks. Eine db gehört nach den Regeln der Normalisierung in ein ordentliches Datenmodell gepackt und aufgebaut. Der Export nach Excel ist damit auch kein Problem.
Die entstehenden Probleme liegen wahrscheinlich in den InnerJoins begründet (müssten dann wohl LeftJoins sein) und treten bei einem vernünftigen Datenmodell nicht auf.
Danke für die freundliche Rückmeldung!
keine Ursache!
Hallo,
ZitatDas ist doch absoluter Murks.
kann ich nur bestätigen... jedoch nicht, dass die Rückmeldung unfreundlich ist... Unfreundlich ist, diesen Weg ernsthaft weiter zu unterstützen, weil diese Methodik (deren Sinn nicht erkennbar ist) nicht zielführend oder erfolgsversprechend ist...
Konstruktives Feedback kenne ich allerdings auch anders. Schließlich bin ich hier nicht ohne Grund als "Hilfesuchender" unterwegs... 3 Wochen Access Erfahrung machen niemanden zum Profi. Für den Hinweis, dass mein Aufbau falsch ist bin ich dankbar, aber "Murks" ist wenn ich Mist backe und euch den als Kuchen verkaufe :P
Ich habe nunmal ein super Tutorial gefunden, dass den Excel Export mit VBA deutlich vereinfacht. Da aber noch ausreichend Wissenslücken bestehen, kann ich so etwas zunächst nur in der Form umsetzen in der es erklärt wird. Sprich mit einer Tabelle. Bisher bin ich noch auf keine Probleme gestoßen, auch wenn ich geahnt habe, dass die Normalisierungsregeln nicht alle eingehalten wurden. Sollte ich hier mit mehreren Unterformularen arbeiten bekomme ich aber den Excel Export via VBA nicht mehr hin.
Hallo,
es ist nur die Methode mit und an der DB bewertet, nicht Deine Person...
Welchen Sinn hat es, aus einer mehr oder weniger normalisierten DB sämtliche Felder und Datensätze nach Excel zu exportieren?
Vermutlich werden durch die Menge der selektierten Felder die Access-Spezifikationen gesprengt.
Und das ist auch durch Trickserei nicht zu verhindern.
die Anzeige "leerer" DS ist hier (wie erwähnt) nur (sinnvoll) über die Left-, bzw. Right-Join Verknüpfung zu erreichen und nicht über einen Where-Condition-Ausdruck.
ZitatSollte ich hier mit mehreren Unterformularen arbeiten bekomme ich aber den Excel Export via VBA nicht mehr hin.
Was hat das mit UFOs zu tun? Und was genau klappt via VBA (Code) nicht mehr?
Hi,
den Export nach Excel kannst Du statt aus EINER Tabelle auch aus EINER Abfrage realisieren.
In dieser Abfrage kannst Du dann Tabellen mit einander verknüpfen. Durch das Aufteilen der Daten auf verschiedene Tabellen hast Du für die Normalisierung gesorgt.
Insofern ist es besser, erst über das Datenmodell nachzudenken (es wird hier bestimmt auch dafür Tipps geben) und erst danach den Export angehen. Ohne Normalisierung kann es ansonsten später zu vielen Probleme führen.
Harald
Hallo nochmal,
Zitat von: DF6GL am August 21, 2015, 14:29:24
es ist nur die Methode mit und an der DB bewertet, nicht Deine Person...
Dessen bin ich mir bewusst. Hat mich nur geärgert, weil das bereits mein zweiter Versuch ist diese Datenbank auf die Beine zu stellen. Ich habe Tage lang nach bestem Wissen und Gewissen daran gearbeitet und ein unverblühmtes "Murks" ist dann sozusagen ziemlich unfair einem Anfänger gegenüber...
Der Sinn das ganze nach Excel zu exportieren ist, dass die Daten in Excel analysiert werden sollen. Es sollen also Graphen erstellt werden, die Laufzeiten etc. darstellen. Das ist letztlich das Ziel des Exports.
Zitat von: DF6GL am August 21, 2015, 14:29:24
Was hat das mit UFOs zu tun? Und was genau klappt via VBA (Code) nicht mehr?
Ich glaube, dass ich mit UFOs arbeiten muss, wenn ich meine zu große (und nicht normalisierte) DB aufteile. Letztlich meine ich damit, dass ich nicht weiß wie ich das in VBA regeln muss, dass mehrere Tabellen aus Access als ein Worksheet nach Excel exportiert werden können. Aus dem Grund habe ich auch versucht eine große Tabelle statt mehrerer kleiner anzulegen.
Zitat von: bahasu am August 21, 2015, 14:30:37
Insofern ist es besser, erst über das Datenmodell nachzudenken (es wird hier bestimmt auch dafür Tipps geben) und erst danach den Export angehen. Ohne Normalisierung kann es ansonsten später zu vielen Probleme führen.
Genau das mache ich jetzt auch. Sollte ich damit nicht weiterkommen wende ich mich nochmal an euch.
Zitat
Zitat von: bahasu am Heute um 14:30:37
Insofern ist es besser, erst über das Datenmodell nachzudenken (es wird hier bestimmt auch dafür Tipps geben) und erst danach den Export angehen. Ohne Normalisierung kann es ansonsten später zu vielen Probleme führen.
Zitatende bahasu:
Genau das mache ich jetzt auch. Sollte ich damit nicht weiterkommen wende ich mich nochmal an euch.
Ganau das hatte ich in meiner ersten Antwort bereits empfohlen. Und wenn es beim Datenmodell klemmt wirst du hier geholfen ;)
Schönes WE
Hallo,
ZitatDer Sinn das ganze nach Excel zu exportieren ist, dass die Daten in Excel analysiert werden sollen
Das ist ok, nur dazu braucht man nicht die gesamten Tabelleninhalte zu exportieren. Es reicht, sich auf die darzustellenden Daten zu beschränken, und das wären deutlich weniger als der gesamte DB-Inhalt.
ZitatLeider stürtzt Access dabei ab. Ich gehe davon aus, dass es sich einfach um zu viele Felder/Kriterien handelt.
Konkret: 20 INNER JOIN's sind mehr als die in Jet-SQL zulässige Anzahl von Verknüpfungen in einer Abfrage von 16.
Siehe auch Access 2010-Spezifikationen (https://support.office.com/de-de/article/Access-2010-Spezifikationen-1e521481-7f9a-46f7-8ed9-ea9dff1fa854).
Auf den einzig sinnvollen Weg würdest Du schon hingewiesen.
Guten Morgen allerseits,
Ich bleibe mal in diesem Thread und bitte euch mal über meinen neuen DB Aufbau zu gucken. Ich habe jetzt nochmal alles neu aufgebaut, bin mir aber immer noch nicht sicher, ob ich alle Normalisierungsregeln berücksichtigt habe.
In den beiden Screenshots seht ihr einmal meinen neuen Aufbau und einmal das Formular zu Eingabe, damit ihr eine Vorstellung davon habt, was überhaupt gemacht werden soll.
Macht es Sinn mit den ganzen Beziehungen zu Feldern wie "SachbearbeiterIDRef" etc. zu arbeiten oder sollte ich diese Referenz Felder einfach löschen und dann im Formular die eigentlichen Felder der Sachbearbeiter Tabelle nutzen?
Freue mich über ein paar Tipps/Verbesserungsvorschläge!
Guten Start in die neue Woche ;)
Hallo,
an den Beziehungen hapert es noch ordentlich...
Ein Formular brauchst Du erst dann entwerfen, wenn die Tabellenstruktur vollständig und stimmig ist.
Unklar ist der Sinn der Tabellen tbl_Prüffeld und tbl_Abteilungen. Gibt es mehrere Prüffelder, die Anlagen betreuen und warum ist das Prüffeld keine Abteilung? Die daran geknüpften Beziehungen sind auch nicht (von mir) nachvollziehbar.
Die Tabellen in der "zweiten" Spalte" können allesamt zu einer ("tbl_Personen" oder ähnlich) zusammengeführt werden, erforderlich ist dann noch eine Unterscheidung durch einen "Bearbeitertyp" (Sachbearbeiter oder Service oder...)
Was ist der Unterschied der einzelnen Servicemonteure(-Tabellen) ? Wenn damit Monteure unterschiedlicher Hersteller (der Anlagen) gemeint sind, so fehlt eine Tabelle "tbl_Hersteller" , die ebenfalls mit tbl_Personen zu verbinden ist.
Die Auflistungs-Felder ATRNrx aus tbl_Maengelliste sollten auch in eine separate Tabelle ausgelagert werden.
Bei Anlagentyp und Schranktyp ist auf evtl. Abhängigkeit zu prüfen.
ZitatMacht es Sinn mit den ganzen Beziehungen zu Feldern wie "SachbearbeiterIDRef" etc. zu arbeiten
Ja, wobei das oben Gesagte Anwendung finden sollte (muss).
Zitatoder sollte ich diese Referenz Felder einfach löschen und dann im Formular die eigentlichen Felder der Sachbearbeiter Tabelle nutzen?
Nein!
Wobei die Frage obsolet erscheint, wenn die Tabellen zu einer zusammengefasst sind.
(ohne Gewähr auf Vollständigkeit ;-) )
Hallo,
Danke für das Feedback!
ZitatUnklar ist der Sinn der Tabellen tbl_Prüffeld und tbl_Abteilungen. Gibt es mehrere Prüffelder, die Anlagen betreuen und warum ist das Prüffeld keine Abteilung? Die daran geknüpften Beziehungen sind auch nicht (von mir) nachvollziehbar
tbl_Prüffeld beinhaltet zwei verschiedene Prüffelder über die die Anlagen laufen können. Je nach Prüffeld werden andere Anlagentypen genutzt und andere Fehlerarten festgestellt. Daher die Tabelle Prüfungen mit entspr. Beziehungen.
tbl_Abteilung beinhaltet 12 versch. Abteilungen in denen ein Mitarbeiter tätig sein kann (Fertigung, Service etc.). Die Hauptaufgabe dieser Tabelle ist es die Mitarbeiter filtern zu können, damit die Auswahl der Mitarbeiter in einer Kombobox leichter fällt.
ZitatDie Tabellen in der "zweiten" Spalte" können allesamt zu einer ("tbl_Personen" oder ähnlich) zusammengeführt werden, erforderlich ist dann noch eine Unterscheidung durch einen "Bearbeitertyp" (Sachbearbeiter oder Service oder...)
Das Problem hierbei ist allerdings, dass ich bei meinem ersten Versuch tatsächlich eine Tabelle "Mitarbeiter" hatte und mehrere Beziehungen gezogen habe. Dadurch bekam ich dann aber in der Abfrage sämtliche "Inner Joins" (s.o). Ich ging davon aus, dass das die Probleme verursacht hat. Oder ist eine tbl_Mitarbeiter dann doch der richtige Weg?
Die unterschiedlichen Servicemonteure stellen lediglich Mitarbeiter in versch. Arbeitsschritten dar (HP=Hauptprüfung etc.).
Was mir hier Schwierigkeiten macht ist die Tatsache, dass viele Felder abhängig sind, also vorgefiltert werden sollen. Also alle Mitarbeiter sollen nach Abteilung vorgefiltert werden, Anlagentyp und Fehlerarten sollen nach Prüffeld vorgefiltert werden. Das macht es mit den Beziehungen nicht leicht...
Hallo,
Zitat
tbl_Abteilung beinhaltet 12 versch. Abteilungen in denen ein Mitarbeiter tätig sein kann (Fertigung, Service etc.). Die Hauptaufgabe dieser Tabelle ist es die Mitarbeiter filtern zu können, damit die Auswahl der Mitarbeiter in einer Kombobox leichter fällt.
Eine Tabelle für die Abteilung ist schon richtig. Falls ein Mitarbeiter in mehreren Abteilungen tätig sein kann, brauchst du noch eine Hilfstabelle tbl_Abt_MA zB mit den Primärschlüsseln aus tbl_Abteilung und tbl_Mitarbeiter um die m:n Beziehung darstellen zu können.
ZitatDie Tabellen in der "zweiten" Spalte" können allesamt zu einer ("tbl_Personen" oder ähnlich) zusammengeführt werden, erforderlich ist dann noch eine Unterscheidung durch einen "Bearbeitertyp" (Sachbearbeiter oder Service oder...)
Habe das so dann doch mal versucht. Das Problem wird im Screenshot deutlich. Habe ich etwas nicht beachtet, oder den Vorschlag nicht richtig verstanden? :-[
Nachtrag
Das Fenster "bestehende Beziehung" öffnet sich, wenn ich versuche eine Beziehung zwischen tbl.Mitarbeiter: MitarbeiterID und ServicemonteurVPIDRef herzustellen
du brauchst noch eine Tabelle Bearbeitertyp mit ID und Beschreibung. Diese ID wird dann in der entsprechenden Spalte der Personentabelle abgelegt. Falls eine Person mehrere Bearbeitertypen verkörpern kann, gilt gleiches wie in meinem letzten Post (m:n).
Hallo,
Danke für den Hinweis Jürgen! Jetzt verstehe ich erst die Empfehlung von Franz :D
Ich habe also eine Tabelle Bearbeitertyp hinzugefügt, wie von euch empfohlen. Auch habe ich eine m:n Beziehung aufgebaut und glaube auch verstanden zu haben, warum das Sinn macht. Wo ich nicht ganz mitkomme ist, wie jetzt die Verbindung zu der Mängelliste aufzubauen ist...
tbl_Bearbeitertyp beinhaltet die Typen Sachbearbeiter, ServicemonteurVP, ...., NameUeberprueft und hat eine m:n Beziehung zu tbl_Mitarbeiter (tbl_MitBtyp). Wie stelle ich jetzt die Verbindung zu sämtlichen "Bearbeitungsfeldern" her? Sprich die Beziehung zu SachbearbeiterIDRef etc.? Habe verschiedene Varianten versucht, bekomme aber nach wie vor die Meldung "Es gibt bereits eine Beziehung".
Was übersehe ich/habe ich noch nicht verstanden?
P.S: Hier noch der neue Aufbau
Moin,
bin ja in deinem Thema nicht so drin ... was ich aber glaube heraus gelesen zu haben ist, dass die Mängelliste verschiedene Bearbeitungsstadien haben kann. Also erst guckt der Techniker A drüber, dann geht es in eine weitere Phase und Techniker B aus ner anderen Abteilung nimmt sich den Fall vor. Wenn das so ist, brauchst du zu Mängelliste eine Fortschrittstabelle in der der Ablauf dargestellt wird.
Das hast du richtig verstanden. Wie sähe die Fortschrittstabelle denn aus? Etwa so:
tbl_Fortschritt
FortschrittID Fortschritt MitarbeiterBearbeitertypIDRef
Oder was meinst du mit "Fortschrittstabelle"? So wie ich mir das grade vorstellen kann verlagert das mein Problem nur... |
|
ZitatDie Tabellen in der "zweiten" Spalte" können allesamt zu einer ("tbl_Personen" oder ähnlich) zusammengeführt werden, erforderlich ist dann noch eine Unterscheidung durch einen "Bearbeitertyp" (Sachbearbeiter oder Service oder...)
Warum ist es überhaupt notwendig die einzelnen Monteure zusammenzufassen? Wenn ich Sachbearbeiter, Servicemonteure etc. in einzelne Tabellen packe, mache ich dann tatsächlich etwas falsch?
die tbl_Fortschritt muss den Fremdschlüssel der Mängelliste beinhalten. Desweiteren wohl eine Beschreibung der Massnahme (kann auch aus einer Tabelle kommen, dann nur den Schlüssel speichern), denjenigen der die Aktion ausgeführt hat (FK aus Person) usw ...
Hallo zusammen!
Habe mich jetzt nochmal wirklich kleinschrittig mit meinem Aufbau beschäftigt und habe nochmal einiges geändert. Und immer noch: Eine Abfrage zu den Formularinhalten zeigt nicht alle Datensätze an. Habe jetzt noch etwas herumprobiert, einiges geändert und mir genau angeguckt ab wann ein Datensatz nicht mehr in der Abfrage auftaucht.
Kleinigkeit zum Aufbau des Formulars:
Hauptformular, welches die Daten der Anlage erfasst.
UFO1, welches die Daten der Prüfungen erfasst.
UFO2, welches die Fehlerdaten erfasst.
- Hier (UFO2) gibt es noch zwei weitere UFOS, welche die Daten zu der Fehlerfeststellung und die Daten zu der Fehlerbehebung erfassen.
Das Ergebnis meiner "Studie":
Wenn einzelne Felder frei bleiben gibt es keine Probleme mit der Abfrage. Sollte allerdings das gesamte UFO mit den Daten der Fehlerbehebung leer bleichen, da der Fehler noch nicht behoben ist, so wird der Gesamte Datensatz, also auch die Daten zur Anlage, Prüfung, etc. Nicht in der Abfrage angezeigt. Ich
GLAUBE also, dass Datensätze dann in meiner Abfrage fehlen, wenn z.B. zu der Fehlerbehebung KEINERLEI Eingaben getroffen wurden. Sobald eine ID in der Tabelle Fehlerbehebung vorhanden ist wird der Datensatz in der Abfrage angezeigt.
Also meine Frage: Wie schaffe ich es, dass zu einer bestimmten AnlagenID auch direkt eine FehlerbehebungID angelegt wird, auch wenn keine Eintragungen im UFO zur Fehlerbehebung getätigt werden?
Kann natürlich auch sein, dass ich mich irre und es IMMER NOCH >:( :-\ an meinem Aufbau liegt.Sollte es euch interessieren hier auch nochmal der SQL Code meiner riesigen Abfrage (Hier sind wieder INNER JOINS vorhanden. Ist das nach wie vor mein Problem oder sind meine Überlegungen von oben sinnvoll?)
SELECT tbl_DatenAnlage.AnlagenID, tbl_DatenAnlage.PrueffeldIDRef, tbl_DatenAnlage.Workorder, tbl_DatenAnlage.Kommissionsnummer, tbl_DatenAnlage.SchaltanlagenSeriennummer, tbl_DatenAnlage.GesamtSeriennummer, tbl_DatenAnlage.Anlagenkennung, tbl_DatenAnlage.Standort, tbl_DatenAnlage.Land, tbl_DatenAnlage.AnlagentypIDRef, tbl_DatenAnlage.SchranktypIDRef, tbl_DatenAnlage.KundeIDRef, tbl_DatenPruefung.PruefdatenID, tbl_DatenPruefung.AnlagenIDRef, tbl_DatenPruefung.Pruefbeginn, tbl_DatenPruefung.Pruefende, tbl_DatenPruefung.[QAATR Zeit], tbl_DatenPruefung.AbteilungsIDRef, tbl_DatenPruefung.Sachbearbeiter, tbl_DatenPruefung.UebertragenDurch, tbl_DatenVP.VPID, tbl_DatenVP.PruefdatenIDRef, tbl_DatenVP.AbteilungsIDRef, tbl_DatenVP.ServicemonteurVP, tbl_DatenHP.HPID, tbl_DatenHP.PruefdatenIDRef, tbl_DatenHP.AbteilungsIDRef, tbl_DatenHP.ServicemonteurHP, tbl_DatenFIFC.FIFCID, tbl_DatenFIFC.PruefdatenIDRef, tbl_DatenFIFC.AbteilungsIDRef, tbl_DatenFIFC.ServicemonteurFIFC, tbl_DatenFehler.FehlerID, tbl_DatenFehler.AnlagenIDRef, tbl_DatenFehler.Fehlerbeschreibung, tbl_DatenFehler.Ort, tbl_DatenFehler.BMK, tbl_DatenFehler.FehlerartIDRef, tbl_DatenFehler.AnlagenstatusIDRef, tbl_DatenFehler.ZuBehebendeAbteilungIDRef, tbl_FehlerBehebung.BehebungID, tbl_FehlerBehebung.Behebungsdatum, tbl_FehlerBehebung.ATRZeit, tbl_FehlerBehebung.FehlerIDRef, tbl_FehlerBehebung.MitarbeiterIDRef, tbl_FehlerBehebung.AbteilungsIDRef, tbl_FehlerFeststellung.FeststellungID, tbl_FehlerFeststellung.Feststellungsdatum, tbl_FehlerFeststellung.FehlerIDRef, tbl_FehlerFeststellung.MitarbeiterIDRef, tbl_FehlerFeststellung.AbteilungsIDRef, tbl_FehlerUeberpruefung.UeberpruefungID, tbl_FehlerUeberpruefung.Ueberpruefungsdatum, tbl_FehlerUeberpruefung.FehlerIDRef, tbl_FehlerUeberpruefung.MitarbeiterIDRef, tbl_FehlerUeberpruefung.AbteilungsIDRef
FROM (((((((tbl_DatenAnlage INNER JOIN tbl_DatenFehler ON tbl_DatenAnlage.AnlagenID = tbl_DatenFehler.AnlagenIDRef) INNER JOIN tbl_DatenPruefung ON tbl_DatenAnlage.AnlagenID = tbl_DatenPruefung.AnlagenIDRef) INNER JOIN tbl_FehlerBehebung ON tbl_DatenFehler.FehlerID = tbl_FehlerBehebung.FehlerIDRef) INNER JOIN tbl_FehlerFeststellung ON tbl_DatenFehler.FehlerID = tbl_FehlerFeststellung.FehlerIDRef) INNER JOIN tbl_FehlerUeberpruefung ON tbl_DatenFehler.FehlerID = tbl_FehlerUeberpruefung.FehlerIDRef) INNER JOIN tbl_DatenFIFC ON tbl_DatenPruefung.PruefdatenID = tbl_DatenFIFC.PruefdatenIDRef) INNER JOIN tbl_DatenHP ON tbl_DatenPruefung.PruefdatenID = tbl_DatenHP.PruefdatenIDRef) INNER JOIN tbl_DatenVP ON tbl_DatenPruefung.PruefdatenID = tbl_DatenVP.PruefdatenIDRef;
Hallo,
du solltest dich mal mit den Möglichkeiten der Tabellenverknüpfung in Abfragen beschäftigen.
Wenn du immer nur den INNER JOIN wählst, ist es klar, dass du nur Datensätze erhältst, zu denen alle beteiligten Tabellen Daten liefern.
Aber wenn du eine Konstruktion aus Haupt- und Unterformularen einsetzt, so brauchst du auch keine Abfrage, die sämtliche Tabellen enthält, sondern jedes Formular kann dann an die datenspendene Quelle gebunden werden.
Gut Danke für den Hinweis. Ich gehe davon aus, dass du diese 3 Möglichkeiten bei den Verknüpfungseigenschaften meinst!?
Die Abfrage mit sämtlichen Inhalten soll anschließend als Export Quelle dienen. Habe zwar auch schon überlegt, das dann so zu benennen das klar ist, dass nur vollständige Datensätze exportiert werden und dann weitere Exportvorgänge für nicht behobene Mängel etc... Aber ein komplettes Ding wäre schon schön. Ich spiele mal mit den Verknüpfungen ;)
Halleluja! ;D Es hat geklappt!
Was für eine schwere Geburt. Aber viel gelernt unterwegs! DANKE für eure Unterstützung!