Quantcast
Channel: Microsoft Access Forum
Viewing all articles
Browse latest Browse all 880

Problem mit Domänenfunktionen in berechneten Feldern einer Abfrage

$
0
0

Hallo zusammen,

folgende Situation: ich habe in einer Datenbank zwei Tabellen, nennen wir sie tbl_A und tbl_B. Beide Tabellen besitzen ein AutoWert-Feld [ID] sowie ein Feld [NAME] (Format: Kurzer Text).

Diese beiden Tabellen sind über eine dritte Tabelle, nennen wir sie tbl_Relation, m:n-verknüpft. Das Problem daran: die beiden Tabellen tbl_A undtbl_B befinden sich (und das ist nicht zu ändern) in unterschiedlichen BackEnd-Dateien, so dass diese Beziehung ohne referentielle Integrität auskommen muss.

Daher möchte ich ein Formular zur Verwaltung dieser Beziehungen bauen, wo man insbesondere solche Datensätze aus tbl_Relation löschen kann, wo auf der A- oder B-Seite der zugehörige Eintrag gelöscht wurde. Das soll dann später eventuell auch noch per VBA automatisiert werden, dafür reicht aber mein Zeit-Budget gerade nicht.

Ich habe zuerst ein Formular basierend auf der Tabelle tbl_Relation gebaut, wo die Namen-Felder austbl_A und tbl_B als berechnete Felder per Domänenfunktion bereitgestellt waren. Problem: danach kann man nicht sortieren, und das muss möglich sein (also nach einem der [NAME]-Felder zu sortieren).

Also habe ich mir gedacht: machst du das per Abfrage. Jetzt habe ich folgendes Problem: ich muss in die Abfrage ja auch zwei berechnete Felder einfügen, wo die Namen bereitgestellt werden. Auch dafür habe ich die Domänenfunktion DomWert bzw. DLookUp verwendet, die den betreffenden Eintrag austbl_Relation mit dem [ID]-Feld aus tbl_A bzw. tbl_Bvergleichen sollte. Syntax ist in etwa so:

NAME_A: DomWert("[NAME]";"tbl_A";"tbl_A![ID]= [ID_A]")

Das führt aber zu einer Fehlermeldung, die sinngemäß besagt, dass Access das Feld [ID_A] nicht finden kann, das ja aber aus der Herkunftstabelle der Abfrage stammt. Wenn ich bspw.NAME_A: [ID_A]+1 schreibe, dann funktioniert das klaglos. Nur innerhalb dieser Domänenfunktion wird das Feld nicht erkannt.

Was mache ich hier falsch bzw. welche technischen Hürden übersehe ich? Welche Alternative gäbe es eventuell?

Im Voraus vielen Dank für jede Antwort.

Mit freundlichen Grüßen,

J. Dessecker


Viewing all articles
Browse latest Browse all 880


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>