Mehrere Datensätze einer Tabelle in eine Untertabelle einfügen
Hallo,
ich habe eine Tabelle eine Untertabelle mit einer 1:N Beziehung. Ich kann nun in der Formularansicht entweder auf das + klicken, um einen neuen Datensatz in der Untertabelle zu erstellen, oder auf die Lupe, um einen bestehenden Datensatz auszuwählen.
Gibt es eine Möglichkeit aus der Tabelle, die sich nach dem Klick auf die Lupe öffnet, mehrere Datensätze auszuwählen und diese dann in die übergeordnete Tabelle zu übernehmen? Ich müsste teilweise 60 oder 80 oder noch mehr Datensätze auswählen und kann die unmöglich vorgehen, in dem ich auf die Lupe klicke, mir einen auswähle und dann wieder auf die Lupe usw :)
Sicher gibt es da eine andere Möglichkeit.
Vielen Grüße
Roland
10 Antworten
-
ja, das geht ganz vorzüglich mit der "Massendatenänderung".
-
Hmm, also nein, ich habe gerade festgestellt, es ist keine Untertabelle, sondern eine Verknüpfung.
Also Haupttabelle ist Serienbrief und dort gibt es eine Verknüpfung zur Tabelle Adressen. Nun klickke ich auf die Lupe und filter mir z.B. Nachname Müller. Nun würde gerne alle Müllers auswählen.
-
Noch genauer gesagt: Es handelt sich um eine Rückverknüpfung.
-
Hallo Roland,
auf diesem Wege gibt es leider keine Möglichkeit. Du kannst die Untertabelle in der Hauptansicht aufmachen, Datensätze markieren und mit Massendatenänderung den Datensatz der Haupttabelle zuweisen. Ist aber alles andere als komfortabel.
Wenn deine Auswahlkriterien eindeutig sind, kann man mit Ansichten sowas wie eine Suchmaske einrichten und dann mit einem Button alle gefilterten Datensätze verknüpfen.
Im einfachsten Fall hat man in der Untertabelle ein Textfeld Text.
Dann fügt man in der Haupttabelle ein Textfeld Suche und eine Ansichtstabelle mit der Formel:
---
let mySearch:=Suche;
select Untertabelle where contains(Text, mySearch)
---
So werden alle Datensätze, welche den Suchtext in den Textfelder enthalten, gefiltert angezeigt.
Jetzt kann man mit einem Button Datensätze übernehmen alle angezeigte Datensätze verknüpfen:
---
let my:=this;
let mySearch:=Suche;
select Untertabelle where contains(Text, mySearch).(Haupttabelle:=my)
---
Man kann auch mehrere Suchfelder oder Bediengungsfelder kombinieren um die Filterung zu präzisieren.
Ist auch nicht genau das, was du möchtest. Mehr kann ich leider nicht anbieten.
Leo
-
Hallo Leonid,
vielen Dank. Ich habe gerade festgestellt, dass mein Konstrukt gar nicht funktioniert. Ich kann zwar in meiner Tabelle Serienbrief mit Datensätzen aus der Tabelle Adressen einzelne verknüpfen, aber dann kann ich diese Adresse gar nicht mehr mit einem weiteren Serienbrief verknüpfen.
Daher stimmt bei mir schon etwas grundsätzliches gar nicht. Eingetlich ist mein Vorhaben total simpel:
In der Tabelle Serienbrief gibt es pro Datensatz ein Datum, ein Betreff und einen Text. Wenn ich nun diesen Serienbrief an alle Datensätze der Tabelle Adressen senden will, wie gehe ich da vor? Ich stehe gerade total auf dem Schlauch :(
-
Hallo Roland,
Da muss noch eine Tabelle her. Die Tabelle soll eine Verknüpfung zu Serienbrief haben und eine Verknüpfung zu der Tabelle Adressen. Nennt sich n:m Beziehung.
Leo
-
Ok, die n:m-Beziehung steht nun und funktioniert soweit. Leider hat sich meine Grundproblematik nicht geändert.
Es muss doch möglich sein, eine Formel zu nehmen, die laienhaft ungefähr so funktioniert:
In der Tabelle Serienbrief:select Tabelle_Adresse where Nachname contains Müller undmachdasinUntertabelle Empfänger
:)
-
Ich habe mal eine Beispieldatenbank hochgeladen, vielleicht ist es damit leichter zu sehen, wo mein Problem liegt :)
https://www.dropbox.com/s/8dz8nc348pu61x8/Serienbrief.ninox?dl=0
-
Hallo Leonid,
WOW. Danke, das muss ich mir jetzt mal genauer anschauen, 10000 Dank :)
Content aside
- vor 6 JahrenZuletzt aktiv
- 10Antworten
- 5531Ansichten