MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 23.12.2016, 12:53   #1
amibobo
MOF User
MOF User
Standard Acc2010 - Bericht - Feld abhängig von Datensatz befüllen od. ausblenden

Hallo Forum,

in einem Bericht sind manche Felder abhängig vom Inhalt des jeweiligen Datensatzes. Wenn der Fall A vorliegt, sollen bestimmte Textfelder eingeblendet und andere ausgeblendet werden. Wenn der Fall B kommt, sollen umgekehrt die Felder aus- und die anderne eingeblendet werden (entweder / oder). Grundlage für den Bericht ist aktuell eine Abfrage.

Wie kann ich nach einem Feld des aktuell im Bericht verarbeiteten Datensatzes abfragen?
Vor allem im nächsten Datensatz kann der Fall B eintreten.

Der entsprechende Wert ist eine Zahl aus einem Optionsfeld. Zusätzlich soll diese Zahl dann im sichtbaren Textfeld in einen definierten Text umgewandelt werden. Z.B. 1 = Ja, 2 = Nein.

Vielen Dank im Voraus!

Viele Grüße
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 23.12.2016, 12:59   #2
gpswanderer
MOF Guru
MOF Guru
Standard

Hallo,
lege für die Optionswerte eine extra Tabelle an und stelle in einer Abfrage eine Verknüpfung über die Zahlenwerte her. Dann hast Du automatisch den richtigen Text zur Anzeige. Alles was sich aus der Abhängigkeit eines Feldes ergibt ist in eine Tabelle auszulagern.

Aber das ist nur die halbe Miete. Die Felder die ein/ausgeblendet werden sollten keine Feldnamen sein, sondern Feldinhalte.
Und diese Inhalte werden datensatzabhängig angezeigt.
Aus/Einblenden von Feldern entfällt ersatzlos.
Da muss nichts programmiert werden, kein Buchstabe.

Hier in diesem Thema:
http://www.ms-office-forum.net/forum...d.php?t=338316
geht es um was ähnliches. In #16 befindet sich eine Beispiel das meinen Vorschlag beinhaltet.

__________________

Gruß
Klaus
Office2003, Win7

Geändert von gpswanderer (23.12.2016 um 13:04 Uhr).
gpswanderer ist gerade online  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2017, 14:48   #3
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo gpswanderer, hallo Forum,

Zitat:

lege für die Optionswerte eine extra Tabelle an und stelle in einer Abfrage eine Verknüpfung über die Zahlenwerte her. Dann hast Du automatisch den richtigen Text zur Anzeige. Alles was sich aus der Abhängigkeit eines Feldes ergibt ist in eine Tabelle auszulagern.

Klingt gut, aber irgendwas mag Access nicht, ich bekomme folgende Fehlermeldung:
"Die SQL-Anweisung konnte nicht ausgeführt werden, da sie mehrdeutige äußere Verknüpfungen enthält. Damit eine der Verknüpfungen zuerst ausgeführt wird, müssen Sie eine separate Abfrage erstellen, die die erste Verknüpfung ausführt, und dann diese Abfrage in die SQL-Anweisung einschließen."

Meine Vermutung ist, dass es ihn die mehrfache Verknüfung auf die tbl_Optionswerte stört (siehe angehängten Screenshot der Beziehungen). Muss ich für alle 6 Felder jeweils eine eigene Hilfstabelle erstellen?

VG
Angehängte Grafiken
Dateityp: png Beziehungen_mehrfach.png (14,7 KB, 5x aufgerufen)
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.01.2017, 16:04   #4
maikek
MOF Guru
MOF Guru
Standard

Poste mal die SQL-Syntax der Abfrage.
Hat jeder Optionswert nur einen Text? Oder kann für 1 mal ja und mal was anders stehen? Dann müsstest du über die ID verknüpfen (und natürlich die Werte in der Rumpftabelle und den Formularen entsprechend anpassen) oder Kategorien vorgeben.
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 09:27   #5
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Maike, hallo Forum,

Zitat:

Poste mal die SQL-Syntax der Abfrage.

hier die SQL-Syntax, die Zahl der Felder habe ich zur Übersichtlichkeit reduziert:
Code:

SELECT
[tbl_Mod Rumpfdaten].PS_ID_MOD_TP, [tbl_Mod Rumpfdaten]. ... (viele Felder) ...
[tbl_Mod Rumpfdaten].Genehmigung, [tbl_Mod Rumpfdaten].Qual_M, [tbl_Mod Rumpfdaten].Qual_N, [tbl_Mod Rumpfdaten].Qual_E, [tbl_Mod Rumpfdaten].DDP,
[tbl_Rumpfdaten für Protokoll u Agenda].[NB-Nr], ... (weitere Felder) ...
FROM
[tbl_Mod Rumpfdaten], [tbl_Rumpfdaten für Protokoll u Agenda]
WHERE
((([tbl_Mod Rumpfdaten].StatusModTp)=1) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1)) OR ((([tbl_Mod Rumpfdaten].StatusModTp)=4) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1));

Zitat:

Hat jeder Optionswert nur einen Text? Oder kann für 1 mal ja und mal was anders stehen?

Die Felder (Feldtyp: Zahl)
[tbl_Mod Rumpfdaten].Genehmigung, [tbl_Mod Rumpfdaten].Qual_M, [tbl_Mod Rumpfdaten].Qual_N, [tbl_Mod Rumpfdaten].Qual_E, [tbl_Mod Rumpfdaten].DDP,
speichern die Werte der 5 Optionsgruppen, 4 Mal mit: Ja (1) / Nein (2) / nicht nötig (3) / k/A (4), ein Mal mit nur: Ja (1) / Nein (2).

Viele Grüße
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 09:48   #6
maikek
MOF Guru
MOF Guru
Standard

Wenn die Options-Werte so wie geschildert gleich sind, brauchst du nicht für jedes eine eigene Hilfstabelle.
Code:

[tbl_Mod Rumpfdaten], [tbl_Rumpfdaten für Protokoll u Agenda]
Da ist überhaupt kein JOIN angegeben? Welche Tabelle ist denn überhaupt die mit den Textwerten für die Optionen?

Allgemeiner Tipp: Verwende Aliase.
Code:

SELECT
R.PS_ID_MOD_TP, R. ... (viele Felder) ...
R.Genehmigung, R.Qual_M, R.Qual_N, R.Qual_E, R.DDP,
...
FROM
[tbl_Mod Rumpfdaten] AS R ...
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 10:01   #7
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Zitat:

Da ist überhaupt kein JOIN angegeben? Welche Tabelle ist denn überhaupt die mit den Textwerten für die Optionen?

Ups, tschuldige, ich habe die Abfrage ohne die Optionswerte genommen, da die mit den Optionswerten den Fehler bringt. Hier die Korrektur:
Code:

SELECT
[tbl_Mod Rumpfdaten].PS_ID_MOD_TP, ... (viele Felder) ...
[tbl_Mod Rumpfdaten].Genehmigung, [tbl_Mod Rumpfdaten].Qual_M, [tbl_Mod Rumpfdaten].Qual_N, [tbl_Mod Rumpfdaten].Qual_E, [tbl_Mod Rumpfdaten].DDP,
tbl_Optionswerte.Optionswert, tbl_Optionswerte.Optionstext,
[tbl_Rumpfdaten für Protokoll u Agenda].[NB-Nr], ... (weitere Felder) ...
FROM
[tbl_Rumpfdaten für Protokoll u Agenda], tbl_Optionswerte
RIGHT JOIN
[tbl_Mod Rumpfdaten]
ON
(tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Prioritaet) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].DDP) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Qual_E) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Qual_N) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Qual_M) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Genehmigung)
WHERE
((([tbl_Mod Rumpfdaten].StatusModTp)=1) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1)) OR ((([tbl_Mod Rumpfdaten].StatusModTp)=4) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1));
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 10:17   #8
maikek
MOF Guru
MOF Guru
Standard

Code:

FROM
[tbl_Rumpfdaten für Protokoll u Agenda], tbl_Optionswerte
da fehlt auch der Join ...?
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 10:28   #9
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Code:

FROM
[tbl_Rumpfdaten für Protokoll u Agenda], tbl_Optionswerte
RIGHT JOIN
[tbl_Mod Rumpfdaten]
Ist das ein falsches JOIN?
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 11:43   #10
maikek
MOF Guru
MOF Guru
Standard

Das weiß ich nicht. Aber die [tbl_Rumpfdaten für Protokoll u Agenda] fehlt im Join und damit erzeugst du bei dieser Syntax (zwei mit Komma getrennte Tabellen im FROM-Teil) ein Kreuzprodukt aus dieser und tbl_Optionswerte.
Zieh doch einfach im Abfrageentwurfsfenster die entsprechenden Felder für die Beziehungen zwischen allen beteiligten Tabellen.
maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 12:55   #11
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ich habe jetzt die Tabelle [tbl_Rumpfdaten für Protokoll u Agenda] entfernt. Dadurch ist die Fehlermeldung verschwunden, allerdings klappt trotzdem die Übernahme der jeweiligen Optionstexte nicht, die Felder sind leer (siehe Anhang: Screenshot aus der Datenblattansicht).

Es müsste doch für jedes in Beziehung stehendes Feld (für Genehmigung, Qual_M, Qual_N, Qual_E, DDP) eine Spalte mit dem jeweiligen Optionswert geben, nicht nur eine Spalte für alle?

Code:

SELECT
[tbl_Mod Rumpfdaten].PS_ID_MOD_TP, ... (viele Felder) ...
[tbl_Mod Rumpfdaten].Genehmigung, [tbl_Mod Rumpfdaten].Qual_M, [tbl_Mod Rumpfdaten].Qual_N, [tbl_Mod Rumpfdaten].Qual_E, [tbl_Mod Rumpfdaten].DDP, ... (weitere Felder) ...
tbl_Optionswerte.Optionswert, tbl_Optionswerte.Optionstext
FROM tbl_Optionswerte
RIGHT JOIN
[tbl_Mod Rumpfdaten]
ON
(tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Prioritaet) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].DDP) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Qual_E) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Qual_N) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Qual_M) AND (tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Genehmigung)
WHERE
((([tbl_Mod Rumpfdaten].StatusModTp)=1) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1)) OR ((([tbl_Mod Rumpfdaten].StatusModTp)=4) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1));
Deinen Rat mit dem Alias habe ich nicht vergessen, mein Versuch mit folgendem Code erzeugt leider einen weiteren Fehler:
Code:

FROM tbl_Optionswerte AS tbl_OW RIGHT JOIN [tbl_Mod Rumpfdaten] AS tbl_MR
Angehängte Grafiken
Dateityp: png Optionstext_mehrfach.png (5,9 KB, 3x aufgerufen)
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 14:32   #12
maikek
MOF Guru
MOF Guru
Standard

Zitat:

Es müsste doch für jedes in Beziehung stehendes Feld (für Genehmigung, Qual_M, Qual_N, Qual_E, DDP) eine Spalte mit dem jeweiligen Optionswert geben, nicht nur eine Spalte für alle?

Ja, klar . Du musst die tblOptionswert einfach für jedes Feld in den Abfrageentwurf mit aufnehmen (der Abfrageentwurf nummeriert die Tabellen dann durch), dann jede Tabelle mit jeweils einem der Qual-Dingsdafelder verknüpfen und die Spalte Optionswert dann ebenfalls pro Qualfeld einfügen.

Wegen des Alias: Bitte den kompletten Code zeigen. Der Ausdruck ... AS Irgendwas muss beim ersten Vorkommen des reinen Tabellennamens stehen und alle Felder müssen mit dem passenden Alias gekennzeichnet sein.

maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 15:05   #13
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Zitat:

Ja, klar . Du musst die tblOptionswert einfach für jedes Feld in den Abfrageentwurf mit aufnehmen (der Abfrageentwurf nummeriert die Tabellen dann durch), dann jede Tabelle mit jeweils einem der Qual-Dingsdafelder verknüpfen und die Spalte Optionswert dann ebenfalls pro Qualfeld einfügen.

Juhu, jetzt klappt es. Aber wozu habe ich in den Datenbank-Beziehungen die Einstellungen gemacht, wenn ich sie bei Abfragen wieder neu einstellen muss?

Zitat:

Wegen des Alias: Bitte den kompletten Code zeigen. Der Ausdruck ... AS Irgendwas muss beim ersten Vorkommen des reinen Tabellennamens stehen und alle Felder müssen mit dem passenden Alias gekennzeichnet sein.

Anbei der komplette SQL-Query:
Code:

SELECT
[tbl_Mod Rumpfdaten].PS_ID_MOD_TP, [tbl_Mod Rumpfdaten].StatusModTp, [tbl_Mod Rumpfdaten].BereichDerNB, [tbl_Mod Rumpfdaten].[Mod-Nr], [tbl_Mod Rumpfdaten].[Mod-Sub], [tbl_Mod Rumpfdaten].Taskproposal, [tbl_Mod Rumpfdaten].BusinessCase, [tbl_Mod Rumpfdaten].Reference, [tbl_Mod Rumpfdaten].Titel, [tbl_Mod Rumpfdaten].[Status CD], [tbl_Mod Rumpfdaten].[STO-Nr], [tbl_Mod Rumpfdaten].[Status SB], [tbl_Mod Rumpfdaten].[Status TA], [tbl_Mod Rumpfdaten].[TA-Nr], [tbl_Mod Rumpfdaten].[Status MS], [tbl_Mod Rumpfdaten].Bemerkung, [tbl_Mod Rumpfdaten].[Zeichnungen erforderlich], [tbl_Mod Rumpfdaten].[Zeichnungen verfügbar], [tbl_Mod Rumpfdaten].[SB von EPC erforderlich], [tbl_Mod Rumpfdaten].[SB von EPC geliefert], [tbl_Mod Rumpfdaten].[SB von CAS-D erforderlich], [tbl_Mod Rumpfdaten].[SB von CAS-D geliefert], [tbl_Mod Rumpfdaten].[TA-E gefordert], [tbl_Mod Rumpfdaten].[TA-E geliefert], [tbl_Mod Rumpfdaten].[M/S erforderlich EPC], [tbl_Mod Rumpfdaten].[M/S bestellbar EPC], [tbl_Mod Rumpfdaten].[M/S bestellbar CAS-D], [tbl_Mod Rumpfdaten].[M/S erforderlich Cas-D], [tbl_Mod Rumpfdaten].[M/S erforderlich  G], [tbl_Mod Rumpfdaten].[M/S bestellbar G], [tbl_Mod Rumpfdaten].[RTW Programm EPC erforderlich], [tbl_Mod Rumpfdaten].[RTW Programm EPC aufgesetzt], [tbl_Mod Rumpfdaten].[RTW Programm CAS-D erforderlich], [tbl_Mod Rumpfdaten].[RTW Programm CAS-D aufgesetzt], [tbl_Mod Rumpfdaten].[RTW Programm für G erforderlich], [tbl_Mod Rumpfdaten].[RTW Programm für G aufgesetzt], [tbl_Mod Rumpfdaten].[CWP Programm EPC erforderlich], [tbl_Mod Rumpfdaten].[CWP Programm EPC aufgesetzt], [tbl_Mod Rumpfdaten].[CWP Programm CAS-D erforderlich], [tbl_Mod Rumpfdaten].[CWP Programm CAS-D aufgesetzt], [tbl_Mod Rumpfdaten].[CWP Programm für G erforderlich], [tbl_Mod Rumpfdaten].[CWP Programm für G aufgesetzt], [tbl_Mod Rumpfdaten].[RefDat von EPC erforderlich], [tbl_Mod Rumpfdaten].[RefDat von EPC geliefert], [tbl_Mod Rumpfdaten].[RefDat von CAS-D erforderlich], [tbl_Mod Rumpfdaten].[RefDat von CAS-D geliefert], [tbl_Mod Rumpfdaten].[RefDat für G erforderlich], [tbl_Mod Rumpfdaten].[RefDat für G geliefert], [tbl_Mod Rumpfdaten].[IPL/IPC von EPC erforderlich], [tbl_Mod Rumpfdaten].[IPL/IPC von EPC geliefert], [tbl_Mod Rumpfdaten].[IPL/IPC  von CAS-D erforderlich], [tbl_Mod Rumpfdaten].[IPL/IPC  von CAS-D geliefert], [tbl_Mod Rumpfdaten].[IPL/IPC  für G erforderlich], [tbl_Mod Rumpfdaten].[IPL/IPC für G geliefert], [tbl_Mod Rumpfdaten].[DM  von EPC erforderlich], [tbl_Mod Rumpfdaten].[DM von EPC geliefert], [tbl_Mod Rumpfdaten].[DM von CAS-D erforderlich], [tbl_Mod Rumpfdaten].[DM von CAS-D geliefert], [tbl_Mod Rumpfdaten].[DM  für G erforderlich], [tbl_Mod Rumpfdaten].[DM für G geliefert], [tbl_Mod Rumpfdaten].PINSTADSerforderlich, [tbl_Mod Rumpfdaten].PINSTADSverfuegbar, [tbl_Mod Rumpfdaten].TrainingVonEPCerforderlich, [tbl_Mod Rumpfdaten].TrainingVonEPCverfuegbar, [tbl_Mod Rumpfdaten].TrainingVonADSerforderlich, [tbl_Mod Rumpfdaten].TrainingVonADSverfuegbar, [tbl_Mod Rumpfdaten].TrainingFuerGerforderlich, [tbl_Mod Rumpfdaten].TrainingFuerGverfuegbar, [tbl_Mod Rumpfdaten].RIGFuerGerforderlich, [tbl_Mod Rumpfdaten].RIGFuerGverfuegbar, [tbl_Mod Rumpfdaten].LSAvonADSerforderlich, [tbl_Mod Rumpfdaten].LSAvonADSverfuegbar, [tbl_Mod Rumpfdaten].LSAFuerGerforderlich, [tbl_Mod Rumpfdaten].LSAFuerGverfuegbar, [tbl_Mod Rumpfdaten].AGEMgmtVonADSerforderlich, [tbl_Mod Rumpfdaten].AGEMgmtVonADSverfuegbar, [tbl_Mod Rumpfdaten].AGEMgmtVonEPCerforderlich, [tbl_Mod Rumpfdaten].AGEMgmtVonEPCverfuegbar, [tbl_Mod Rumpfdaten].Genehmigung, tbl_Optionswerte.Optionswert, tbl_Optionswerte.Optionstext, [tbl_Mod Rumpfdaten].Qual_M, tbl_Optionswerte_2.Optionswert, tbl_Optionswerte_2.Optionstext, [tbl_Mod Rumpfdaten].Qual_N, tbl_Optionswerte_3.Optionswert, tbl_Optionswerte_3.Optionstext, [tbl_Mod Rumpfdaten].Qual_E, tbl_Optionswerte_1.Optionswert, tbl_Optionswerte_1.Optionstext, [tbl_Mod Rumpfdaten].DDP, tbl_Optionswerte_4.Optionswert, tbl_Optionswerte_4.Optionstext, [tbl_Mod Rumpfdaten].[Ready to go], [tbl_Mod Rumpfdaten].NeuesThema, [tbl_Mod Rumpfdaten].ReaktiviertesThema, [tbl_Mod Rumpfdaten].Thema_PAMF

FROM
tbl_Optionswerte AS tbl_Optionswerte_4 RIGHT JOIN (tbl_Optionswerte AS tbl_Optionswerte_1 RIGHT JOIN (tbl_Optionswerte AS tbl_Optionswerte_3 RIGHT JOIN (tbl_Optionswerte AS tbl_Optionswerte_2 RIGHT JOIN (tbl_Optionswerte RIGHT JOIN [tbl_Mod Rumpfdaten] ON tbl_Optionswerte.Optionswert = [tbl_Mod Rumpfdaten].Genehmigung) ON tbl_Optionswerte_2.Optionswert = [tbl_Mod Rumpfdaten].Qual_M) ON tbl_Optionswerte_3.Optionswert = [tbl_Mod Rumpfdaten].Qual_N) ON tbl_Optionswerte_1.Optionswert = [tbl_Mod Rumpfdaten].Qual_E) ON tbl_Optionswerte_4.Optionswert = [tbl_Mod Rumpfdaten].DDP

WHERE
((([tbl_Mod Rumpfdaten].StatusModTp)=1) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1)) OR ((([tbl_Mod Rumpfdaten].StatusModTp)=4) AND (([tbl_Mod Rumpfdaten].BereichDerNB)=1));
Was meinst Du mit "reinen Tabellennamens"?
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 15:30   #14
maikek
MOF Guru
MOF Guru
Standard

Code:

SELECT
R.PS_ID_MOD_TP, R.StatusModTp, R.BereichDerNB, R.[Mod-Nr], ..., O.Optionswert, O.Optionstext, R.Qual_M, O2.Optionswert, O2.Optionstext, ...
FROM
tbl_Optionswerte AS O4 RIGHT JOIN (tbl_Optionswerte AS O1 RIGHT JOIN (tbl_Optionswerte AS O3 RIGHT JOIN (tbl_Optionswerte AS O2 RIGHT JOIN (tbl_Optionswerte AS O RIGHT JOIN [tbl_Mod Rumpfdaten] AS R ON O.Optionswert = R.Genehmigung) ON O2.Optionswert = R.Qual_M) ON O3.Optionswert = R.Qual_N) ON O1.Optionswert = R.Qual_E) ON O4.Optionswert = R.DDP
WHERE ...
R.StatusModTp = 1 AND R.BereichDerNB ...
So sollte das aussehen. Bei allen Feldern der Alias und im FROM-Teil bei den Tabellen hinter dem ersten ausgeschriebenen Vorkommen das AS ...

BTW: Deine Tabelle Rumpfdaten sieht verdächtig nach einem großen Haufen unnormalisierter Daten aus, die unnötigerweise Fehler und Inkonsistenzen, Redundanz und sonstwas erzeugen. Das solltest du dringend auf vernünftige 1:n oder m:n Beziehungen umstellen. Alles mit "erforderlich, bestellbar ... " ist auszulagern, genauso wie alle Felder, wo nur Häkchen drin sind, z.B. auch diese Qual-Dinger mit den Optionswerten sollten im Grunde so aussehen:
Code:

PS_ID_MOD_TP(?), Qual, QualOpt
1                3     1
1                2     3
2                1     5
'usw.
dann hättest du auch nur einmal die Beziehung zur tblOptionswert gebraucht.

maike

__________________

Bitte dein Thema auf erledigt setzen, wenn's durch ist!
MOF Access Stammtisch in Bremen
maikek ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2017, 12:43   #15
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Maike, hallo Forum,

Zitat:

Bei allen Feldern der Alias und im FROM-Teil bei den Tabellen hinter dem ersten ausgeschriebenen Vorkommen das AS ...

Das habe ich geändert und klappt

Zitat:

BTW: Deine Tabelle Rumpfdaten sieht verdächtig nach einem großen Haufen unnormalisierter Daten aus, die unnötigerweise Fehler und Inkonsistenzen, Redundanz und sonstwas erzeugen.

Stimmt, die Tabelle habe ich so geerbt.

Zitat:

Das solltest du dringend auf vernünftige 1:n oder m:n Beziehungen umstellen. Alles mit "erforderlich, bestellbar ... " ist auszulagern, genauso wie alle Felder, wo nur Häkchen drin sind, z.B. auch diese Qual-Dinger mit den Optionswerten sollten im Grunde so aussehen:

Code:

PS_ID_MOD_TP(?), Qual, QualOpt
1                3     1
1                2     3
2                1     5
'usw.
dann hättest du auch nur einmal die Beziehung zur tblOptionswert gebraucht.

Wie macht man das bei einer Tabelle, die bereits Daten enthält?

Wieso kann man alles mit Häckchen und die Optionswerte auslagern?
Bei Häckchen sind es ja/nein Werte, diese durch IDs auf eine eigene Hilfstabelle mit ja/nein zu ersetzen, was bringt das?
Bei Optionswerten wird eine Zahl gespeichert, was einer ID entspricht. Das müsste man durch eine ID auf eine Hilfstabelle ersetzen. Oder wie lagert man das richtig aus?

Viele Grüße
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.