November 27, 2020, 07:01:57

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Text anstatt ID als Ergebnis in einer Formel-Abfrage (wenn)

Begonnen von tomm85, November 02, 2020, 21:26:41

⏪ vorheriges - nächstes ⏩

tomm85

Hallo liebes Forum,

in einer Tabelle kann man - in meinem Beispiel - einen abweichenden Mitarbeiter pflegen. Diese Felder sind Dropdown-Felder, die zwar über die ID verknüpft sind, aber - zur besseren Darstellung - die Texte (Namen) darstellen. Nun verwende ich diese Felder in einer Formel-Abfrage und möchte hier als Ergebnis aber auch die Texte sehen und nicht die Namen.

Sie dürfen in diesem Board keine Dateianhänge sehen.

Vielen Dank

MzKlMu

November 03, 2020, 00:43:57 #1 Letzte Bearbeitung: November 03, 2020, 01:00:15 von MzKlMu
Hallo,
so (SQL Abfrage):
SELECT Mitarbeiter!Name, Nz([Mitarbeiter_1]![Name],[Mitarbeiter]![Name]) AS AbweichenderMitarbeiter
FROM Mitarbeiter AS Mitarbeiter_1
RIGHT JOIN (Mitarbeiter
INNER JOIN Einsatz ON Mitarbeiter.ID = Einsatz.Mitarbeiter) ON Mitarbeiter_1.ID = Einsatz.AbweichenderMitarbeiter
Die Tabelle Mitarbeiter wird 2x in die Abfrage aufgenommen und vernüpft 1x zum Mitarbeiter und 1x zum abw.Mitarbeiter, leztere mit Right Join. Die 2.Tabelle erhält automatisch den Aliasnamen Mitarbeiter_1. Wenn der Name des abw. Mitarbeiters leer ist, wird über Nz der Originalmitarbeiter eingetragen. Wenn braucht man da nicht. Wobei das ja sachlich falsch ist. Ursula ist ja nicht der abweichende Mitarbeiter, sondern der original Mitarbeiter.

Hinweise:
In einer Tabelle legt man grundsätzlich keine Nachschlagefelder an, die werden ausschließlich in Formularen verwendet und erfüllen dort den gleichen Zweck. Mache da also wieder ganz normale Textfelder draus.
Name ist ein reserviertes Wort und darf als Feldname nicht verwendet werden. Access gibt da beim Anlegen des Feldes auch eine Meldung aus, die Du aber ignoriert hast. Ändere das Feld in Vor oder Nachname.

Zu den Nachschlagefeldern:
http://dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern
Gruß
Klaus

tomm85

Hallo @MzKlMu

vielen Dank für Deine Input.

Irgendwie hatte ich da einen Denkfehler drin bzw. einen Fehler in meiner Test-Entwicklung.
Ich glaube an anderer Stelle hatte ich mit Dir und Eckhardt diskutiert / vernommen, dass es sinnvoll ist, immer mit Abfragen zu arbeiten. Auch unabhängig davon habe ich Geschmack am Arbeiten mit Abfragen gefunden und mir angewöhnt, stets eine Abfrage auf jede Tabelle zu bauen und auch darin die Daten zu erfassen. In bestimmten Konstellationen (ich nehmen mal an sobald man einen Join hat) kann man jedoch in einer Abfrage keine Daten mehr anfügen (verständlich, da die Eindeutigkeit des neuen Datensatzes in verknüpfte Tabellen nicht mehr gegeben ist).

Letztlich hatte ich dieses Problem bereits bei meinem ersten Test mit den "abweichenden Mitarbeitern".

Sprich: Die Wenn-Dann-Logik hatte funktioniert, nur eben die Mitarbeiter-ID anstatt des Namens ausgegeben. Als ich dann die MA-Tabelle mit dem Ziffernfeld verknüpfte, konnte ich keine Daten mehr anfügen. Keine Ahnung, was ich da gemacht habe, denn, als ich es gestern nochmals versuchte, funktionierte es wunschgemäßg.

@Name: Ja, volle Zustimmung und "Name" habe ich nur für die Skizze verwendet. In der Tat ist meine "Namenskonvention" etwas ausgereifter und so fängt bei mir bspw. jedes Tabellenfeld mit "tf_" an, was für "table field" steht, während bspw. Verkettungen in der Abfrage mit "qf_" beginnen ("query field")... aber das nur nebenbei.

Zitat von: MzKlMu am November 03, 2020, 00:43:57In einer Tabelle legt man grundsätzlich keine Nachschlagefelder an, die werden ausschließlich in Formularen verwendet und erfüllen dort den gleichen Zweck. Mache da also wieder ganz normale Textfelder draus.
--> Du meinst Ziffern-Feld, oder?

@Nachschlagefeld: Ja, da mögt ihr als Access-Profis so machen (und ich hoffe ich auch, eines Tages)... den Charm vom Nachschlage-Assistenten in der Tabelle (und somit auch in den Abfragen) finde ich darin, dass ich gleich eine Kombinations-Box im Auto-Formular habe (womit "ihr" womöglich auch nicht arbeitet - ich bin jedoch dankbar für jede Vereinfachung, die mir Access bietet, auch wenn man das ein oder andere so eigentlich nicht macht / machen sollte) ... little by little :-)

Danke für Deinen Input und Deine Zeit!

Beaker s.a.

Hallo Tom,
Zitatgleich eine Kombinations-Box im Auto-Formular habe (womit "ihr" womöglich auch nicht arbeitet - ich bin jedoch dankbar für jede Vereinfachung
Für schnelle Beispiele verwende ich auch den Form-Assi. Und diese Bequemlichkeit
mit den Kombifeldern kann man auch ruhig nutzen. Die funzt i.Ü. auch ohne Assi
indem man das Nachschlagefeld aus der Feldliste auf's Form zieht. Sobald das Layout
des Forms jedoch fertig ist, sollte man die Nachschlagefelder in der Tabelle, wie
geschrieben, wieder zu Textfeldern ändern.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.