Base: mehrere Links/Datensätze in einem Feld setzen

Hallo.

Ich spiele mich jetzt schon eine ganze Weile mit der Angelegenheit und habe es im Alleingang soweit hinbekommen, aber jetzt bin ich wohl an meine Grenzen gestoßen und brauche mal Hilfe (oder die Info, dass ich zu viel erwarte und mir einen Workaround suchen muss g).

**Beschreibung: **

Datenbank mit zwei Tabellen. Haupt- und Nebentabelle.

In der Nebentabelle gibt es zwei Felder

“Art” und “Name”

Name ist so ziemlich einzigartig, bei Art gibt es mehrfacheinträge. also z.B.

Art | Name

A | Blabla

B | Damdidaaa

A | Dumdam

A | Uhm …

B | Blubber

C | wasauchimmer

Die Haupttabelle enthält (unter anderem) ebenfalls die Felder “Art” und “Name”

**Was ich erreichen will: **

Das Feld “Art” in der Haupttabelle ist im Formular ein Popup zur Auswahl der in der Nebentabelle ebenfalls verwendeten Bezeichnungen für Art. Also A, B und C. Bei Auswahl der jeweiligen Art sollen im Feld “Name” in der Haupttabelle nur noch die Namen der gewählten Art zum Einfügen vorhanden sein. Traumhaft wäre auch hier ein Popup-Feld, aber das ist nicht so wichtig.

Geschafft habe ich das jetzt über eine Relation, die ich den Feldern hinzugefügt habe.

Art = “Art->Art” - Typ: Text oder Zahl

Name = “Art->Name” - Typ: Text oder Zahl

(Also Relation eingefügt und im Reiter Rechenfeld steht jetzt drin “Art->Art” bzw. “Art->Name”)

Das bewirkt, dass bei Auswahl im Eingabefeld “Art” (ein Popup) die Nebentabelle aufgerufen wird und ich dort eine gefilterte Ansicht habe, mit allen Namen, die zur gewählten Art gehören.

also z.b. bei Art ist “B” angegeben und die Nebentabelle öffnet sich mit lediglich den Einträgen

B | Damdidaaa

B | Blubber

Dort kann ich dann einen Eintrag anklicken, gehe auf Link setzen und der Name erscheint im Formular der Haupttabelle im Feld Name. Ganz wunderbar.

**Mein Problem: **

Ist es möglich, MEHRERE Werte auszuwählen und im Eingabeformular der Haupttabelle einzugeben? Wenn ja, wie würde das funktionieren?

Ich will also erreichen, dass ich mir A in der Art auswähle und dann zwei oder drei Namen aus der Nebentabelle in meinem Formular verknüpfen kann, mit Komma getrennt.

Wichtig zu wissen evtl. noch: Die anzahl der Namen variiert von Datensatz zu Datensatz. Das kann nur einer Sein, können aber auch 10 und mehr sein.

So. Das klingt vermutlich alles nur total wirr. Ich bin was Programmieren und so angeht leider auch absolut unbedarft. Ich wäre hier also für jede Hilfe und Antwort dankbar.

Lg,

Amancham

Wird das Ergebnis in einem Report gewünscht oder muss es schon in der Datenbank auftauchen?

So wie ich das verstehe bleibt dir nur zweierlei:

Entweder in der Nebentabelle alle nötigen Feld B Varianten anlegen, also Art A, B Blabla, Dumdam, nächster Datensatz Art A B Blabla, nächster Datensatz A, B Dumdam, usw.

Ooooder:

Mehrere Verknüpfungsfelder in der Haupttabelle anlegen, das ganze also bei z. B. max. 5 Möglichen Varianten 5x untereinander anlegen, die Verknüpfungen dann wie gewünscht eintragen das ganze dann in einem 6. Feld kommageteilt verknüpfen lassen. Also:

Art01 Name01

Art02 Name02

Art03 Name03

Art04 Name04

Art05 Name05 (…usw.)

Zum Text verknüpfen dann ein neues Feld enlegen, das eigentlich benötigte:

Name= STR(Name01) + “,” + STR(Name02) + “,” usw.

Sollte nur Name01 ausgefüllt werden, erzeugt das Name= Blabla, Nicht so gut

Um überflüssige Kommas zu vermeiden das ganze - so gewünscht - an eine IF Bedingung knüpfen, also

IF Name01 THEN STR(Name01) + “,” ELSE

IF Name02 THEN STR(Name02) + “,” ELSE usw.

Kannst du auf ca. 500 Felder ausbauen, müsste dann genügen :wink:

Also ganz sicher bin ich mir nicht, ob ich dich richtig verstanden habe, aber vermutlich geht es um ein ähnliches Problem, das ich bei einer Konkordanz-Datenbank mit papyrus hatte.

Vermutlich könnte es so klappen:

Du müsstest zunächst die zwei Tabellen anlegen.

In der Haupttabelle (“Artentabelle”) legst du ein Feld “Art” an, sowie die Anzahl der höchstmöglichen Namen, sprich Name01, Name02, Name03 etc.

Jede Art ergibt einen Datensatz, weitere Beschreibungsdatenfelder je nach Gusto.

Nun legst du Verknüpfungen an, für jeden Name einen: “Name01”,“Name02” mit dem Feld “Name” in der 2. Tabelle

In der 2. Tabelle (“Namenstabelle”) legst du alle vorkommenden Namen mit Art an, sprich du brauchst das Feld “Art” und das Feld “Name”, und evtl. weitere Felder. Unter Umständen könntest du das Feld Art sogar weglassen und nur die Namen eingeben (dazu siehe unten).

Du gibst nun alle Namen, evtl. mit zugehöriger Art ein, und verknüpfst sie jeweils manuell.

Mir ist jetzt aber noch nicht ganz klar, was dir das bringt. Falls die zweite Tabelle nur Art und Name enthält, könntest du nämlich alles in einer Tabelle unterbringen.

Falls es dir darum geht, die Namen dann auch in einem Feld zusammenzufassen, würde ich das so machen, wie von blake beschrieben (das ist auch für mich eine durchaus sinnvolle Idee - Danke), allerdings leicht verändert:

Name01 +

( IF Name02 THEN ‘,’ + Name02) +

( IF Name03 THEN ‘,’ + Name03)

usw …

Name01 muss dann allerdings immer gesetzt sein - wird er ja wohl auch in aller Regel!

So werden Kommas nur gesetzt, wenn mehr als 2 Namen vorkommen, und am Ende steht ebenfalls keines.

Woah! Jetzt habe ich gerade festgestellt, dass sich hier sogar noch bei Verknüpfungen auch andere Felder ansprechen lassen.

D.h. angenommen deine Namenstabelle enthält auch noch ein Feld Farbe o.ä., dann könntest du oben so erweitern:

Name01 + " (" + Name01->Farbe + “)” +

( IF Name02 THEN ‘,’ + Name02 + " (" + Name02->Farbe + “)” ) +

( IF Name03 THEN ‘,’ + Name03 + " (" + Name03->Farbe + “)” )

usw …

Allerdings kann aus diesem Feld nicht direkt auf die verknüpften Datensätze zugegriffen werden …

Erst mal vielen Dank für all die freundlichen Antworten und Hilfestellungen! Leider bin ich absoluter Base Neuling und versuche noch herauszufinden, was mit dem Programm alles möglich ist und was nicht.

Nebenfrage: Mehrfachauswahl voreingestellter Werte ist nicht möglich, oder? Checkbox lässt nur ja/nein zu, Popup lässt nur eins auswählen und das gleiche gilt bei den radiobuttons, soweit ich das ausprobiert habe.

Okay. sowas hatte ich mir schon gedacht. Naja. wird es halt ein sehr umfangreiches Formular, fürchte ich lol

Was mir das bringen soll bzw. wozu ich das “brauche” (weil die Frage aufkam): Ich hab mir vor drei Jahren eine Access Datenbank für meine diversen Storyprojekte angelegt, zum besseren überblick, was schon abgeschlossen ist, was noch überarbeitet werden muss, was wo gepostet ist usw. Das wurde mittlerweile aber reichlich mühsam und nervig und außerdem will ich von Windoof Programmen weg. (persönliche Präferenzen. ich halte nicht viel von Windows. g)

Die Auswahl nach der ich gefragt habe, soll dazu dienen, das eintragen der Projekte zu erleichtern. Da ich viel Fanfiction neben original stories schreibe, ca. 19 verschiedene Fandoms benutzt habe und die Liste meiner Charaktere sich auch auf über 150 verschiedene Charaktere aus den diversen Fandoms beläuft, wird die Auswahlliste in der Datenbank schon extrem lang, wenn ich da ALLE Charaktere in eine Auswahl packe. Wäre also hilfreich, wenn ich eine story eintrage, aus einem beliebigen Fandom, dass dann nur die Charaktere aus dem jeweiligen Fandom zur Auwahl stehen und ich mich nicht durch eine überlange Liste scrollen muss.

Eine Verlinkung mit dem Datensatz ist an sich nicht nötig, aber meine bisherigen Versuche mit einer Eingrenzung der Charaktere auf die aus dem gewählten Fandom habe ich bisher halt nur mit dieser Verknüpfung erreicht. Wenn das anders möglich ist, gerne auch das.

Natürlich wäre es am Einfachsten, eine Combobox für die Charaktere zu erstellen und sie alle einzutippen, aber dann sitz ich ewig dran, drum wäre mir eine Auswahl aus vorgegebenen Datensätzen/Möglichkeiten lieber, zumal mir das gleichzeitig einen Überblick über die verschiedenen Charaktere gibt, die ich schon mal eingesetzt habe.

Und ja, mir ist bewusst, dass das unter die Kategorie “Dinge, die der Mensch nicht braucht” fällt. Ich hab halt ein Faible für Überblick, Listen & Datenbanken, wenn es ums Schreiben geht :wink:

Ausprobieren das ist beileibe nicht nur am Anfang dran. Ich lerne immer wieder was dazu, obwohl ich schon jahrelang mit papyrus arbeite. Manche Features verwendet macht man selten, manche Neuerungen gehen irgendwie an einem vorbei, weil man sie im Moment nicht braucht, und so muss man sich dann halt immer wieder neu damit befassen.

Soweit ich weiß, geht das nicht.

Mir macht das durchaus auch Spaß sowas zu “programmieren”, aber wenn es nicht funktioniert …

Naja, aber da hört sich die Sache mit der Verknüpfung ganz sinnvoll ein. Eine Combobox wäre bei 150 Einträgen etwas überladen.

Solange es Spaß macht … ;).

Hmm, also was auch meiner Erfahrung nach nicht geht (Mehrfachauswahl usw) wurde ja schon erläutert.

Das Problem ist (m)einer Rechnungsdatenbank sehr ähnlich, da müssen aus tausenden Artikeln mehrere zu einer Rechnung zusammengefasst werden.

Man könnte für jeden Namen eine Checkbox ja/nein machen, wäre zwar einfach zu bedienen, aber umständlich zu programmieren. Und für jeden neuen Charakter müsste man wieder die Datenbank ändern, also umprogrammieren.

Da würde ich den beschriebenen Weg mit den Verknüpfungsfeldern vorziehen. Das klingt zwar umständlich zu programmieren, ist auch ein nachmittag Arbeit, aber dafür wird es wunderbar funktionieren!

In der Nebentabelle einmal neu angelegte Charaktere sind ab sofort immer verfügbar, Rechtschreibefehler ausgeschlossen, und ein Rechtsklick in der Nebentabelle auf einen Charakter kann sofort abfragen: “Zeige verknüpfte in Hauptabelle” und du siehst sofort eine Liste, wo der Charakter vorkommt.

Nochmal vielen Dank für all eure Hilfe. Werde mich damit jetzt einfach mal weiterspielen und sehen, wie das Ding am Ende aussieht :wink:

Falls noch Fragen aufkommen, melde ich mich einfach nochmal. Aber ich werde erst wieder versuchen, selbst voran zu kommen und nicht wegen jedem Pieps im Forum spammen :wink: