0

Verknüpfungsauswahl filtern um bereits verknüpfte Datensätze

Hi,

ich habe zu einem Datensatz eine Verknüpfungstabelle 1:n. Wenn ich auf "neuer Datensatz" klicke, kommt die nächste Maske in welcher ich wiederum klicken kann um dann einen Datensatz auszuwählen der Verknüpfungstabelle auszuwählen. HIer habe ich einen Filter auf ein Feld bereits gesetzt, um nur relevante Datensäätze ind er Auswahl angezeigt zu bekommen.

Nun sollen aber auch Datensätze in der Auswahltabelle nicht mehr angezeigt werden, die bereits verknüpft sind.

Der Versuch: a.Projekte != b.Verkauf führe leide rnicht zum Erfolg auch Dinge wie a.Projekte.Nr != b.Verkauf.Nr klappt nicht.

Kann jemand helfen?

Gruß, Timo

14 Antworten

null
    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Timo,

     

    wundert mich ein wenig. Wenn ich 1:n Verknüpfungen habe und werden die bereits verknüpften Datensätze eigentlich sowieso nicht mehr zur Auswahl angezeigt da die ja bereits Verknüpft sind und nicht nochmal verknüpft werden könne. In welcher Tabelle ist die Verknüpfung denn 1:n? Doch in der, in der Du den Datensatz asuwählen willst oder? 

    2. Frage. Du meinst sicher "suchen und hinzufügen" und nicht neuer Datensatz" oder? Weil dann öffnet es sich ja kein Auswahldialog sonder ein neuer Datensatz wird erstellt.

     

    Unabhängig davon könntest Du ja einfach eine Spalte anzeigen lassen mit der Verknüpfung (Also 'Verkauf' wenn cih das richtig sehe) und die auf "leer" filtern.

     

    lg Florian

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hi Florian,

    das mit dem Anzeigfilter würde gehen, dann filtert es mir aber alle Datensätze aus Verkauf die mit irgendeinem Projekt verknüpft sind.

    Die Struktur sieht so aus.

    Tabelle "Projekte":
    1:n Verknüpfung zu Verkauf. Hier wird dann an der Tabelle "neuer Datensatz" angezeigt. Dann kommt das Verknüpfungsfeld "Verkauf". Klick darauf, wird die Tabelle aller Datensätze aus der Tabelle "Verkauf" angezeigt. Hier filter ich schon nach allen Datensätzen die unter "Projekte" mit dem gleichen Kunde verknüüpft sind, das klappt soweit. Nun müsste der Filter ja so erweitert werden, dass in der Tabellenauswahl nur noch Datensätze aus "Verkauf" angezeigt werden, für die es noch keine Verknüpfung in der Tabelle Projekte_Verkauf gibt. Hier fehlt mir der Ansatz, da der Filter auf "Verkauf" ja bedingt werden müsste durch die Verknüpfungstabelle Projekte_Verkauf?

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    achso also nicht wenn Du auf neuer Datensatz klickst sonder in die Tabelle rein. Das enspricht ja dann "Suchen und Hinzufügen".

    Ok dann Spalte einfügen -> Funktion. Und einfach die Spalte nochmal auswählen. Dann hast du die Spalte 2x zum filtern.

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Oder hast Du nochmal eine VErknüpfungs-Hilfstabelle dazwischen? Wenn ich deinen ersten Post lese kommt mir das gerade so vor

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Es gibt eine Verknüpfungstabelle Projekte zu Verkauf...

    Schritt 1 in der Tabelle "Projekte"

    Schritt 2, nach klicken auf "neuer Datensatz"

    Schritt 3, auswahl des zu verknüpfenden Datensatzes aus "Verkauf" - hier soll gefiltert werden auf Datensäetz die nicht schon in Schritt 1 angezeigt/verknüpft sind

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    oh, die Bildbeschreibungen werden offenbar nicht angezeigt...
    1: In Projekte die angezeigten Verknüpfungen. Dann klick auf "neuer Datensatz"
    2: Auswahl der Verknüpfung
    3: Anzeige der Tabelle aus "Verkauf" die nun gefilter sein soll um Datensätze die in (1) schon stehen

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ah ja ok also eine Hilftabelle damit man die Datensätze öfter Verknüpfen kann. Frage mich nur warum es die gibt wenn du das ja gar nicht willst. So eine Zwischenverknüpfung nimmt man ja um n:n zu verknüpfen. Aber egal.

    -

    Dann würde ich beim Verknüpfungsfeld 'Verkauf' über erweiterte Optionen anzeigen -> Einschränkungen festlegen:

    -

    a = 0

    -
    Weil Du willst doch da nur Datensätze angezeigt haben die noch nicht mit der aktuellen Datenbank (a) verknüft sind. Müsste ich aber jetzt selbst vor mir haben zum testen :-)

     -

    lg

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Oder eher a = null

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ich würde ja eher auf

     

    not b.Projekte_Verkauf

     

    tippen

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ein Datensatz aus Verkauf kann durchaus auch noch bei einem anderen Projekt verknüpft sein. Bei ein und dem selben Projekt aber nur einmal, daher die Tabelle dazwischen.

    a = null zeigt überhaupt keine Datensätze mehr an

    not b.Projekte_Verkauf filtert die schon verknüpften auch nicht raus

     

    Vielleicht ist es echt ganz easy, aber von der Logik her müsste ich doch erstmal alle Datensätze aus ProjekteVerkauf sammeln, bei denen Projekt.Nr = this.Nr ist. Dann aus den gewonnenen Zeilen die Verkauf.Nr erhalten und nun die Tabelle filtern um alle diese Verkauf.Nr. Bekommt man das in einem a.xy != b.yz hin?

    • Florian_Wisser
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Müsste das echt mal sehen. Aber a ist doch a(Projekte_Verkauf) und b(Verkauf) oder?

    -

    Dann würde die Einschränkung a=null doch bedeuten, dass nur Verkauf Datensätze angezeigt werden die noch keine VerknÜpfung zu Projekte_Verkauf haben. Und das ist doch was du wolltest oder? 

    -

    oder vielleicht: 

    -

    b.Projekte_Verkauf.Verkauf = null

    -

    Das hab ich aber noch nicht probiert ob das geht...

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke für eiuren Input. Die Anzeige der Verknüpfung in Tabelle, um dann dort nach leeren zu fltern hat mich in die richtige Richtung geleitet.

    Mit dem Filter a.Projekte != b.Projekte.Projekte klappts!

    • Torsten_Stang.1
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hi Timo,

     

    das wird aber nur so lange klappen, wie ein Datensatz im Verkauf mit nur exakt einem Projekt verknüpft ist.

     

    not contains(concat(b.Projekte.Projekte.<Textfeld>),a.Projekte.<Textfeld>)

     

    <Textfeld> meint ein eindeutiges Textfeld in Projekte. Code ohne Gewähr - a und b würfel ich gerne mal durcheinander :-)

     

    lg, Torsten

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    guter Hinweis, Danke!