Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Datensatz kopieren und an anderer Stelle einfügen

Begonnen von GonzoWiefel, Februar 15, 2023, 13:41:23

⏪ vorheriges - nächstes ⏩

GonzoWiefel

Hab mal wieder eine Frage: Ich habe ein Formular mit Adress- und Personendaten. Diese Adress-/...-daten sind an einen anderen Datensatz per ID verknüpft. Nun kann es vorkommen, dass es einen neuen Datensatz gibt, der die selben Adressdaten hat. Nun würde ich gern (evtl. über einen Button) die schon bestehenden Adressdaten (also den Adressdatensatz) als Adressdaten für einen neuen Datensatz kopieren.
Hier geht es nicht darum, dass Kunden Bestellungen aufgeben, sondern dass es thematisch unterschiedliche Anfragen gibt, die hin und wieder die gleiche Herkunft haben. Also steht die Anfrage im Vordergrund, nicht der Anfrager. Da relativ viele Daten der Anfrager erfasst werden, wäre es gut, wenn man eventuell schon vorhandene Daten per Button kopieren könnte. Ich hoffe, das ist iwie verständlich...
Hat jemand eine Idee? Thx i. A. :) 

MzKlMu

Hallo,
in diesem Falle gehören die Adressdaten in eine extra Tabelle. Die Personendatentabelle enthält dann nur ein Schlüsselfeld (Fremdschlüssel) zu den Adressdaten.
Das Kopieren entfällt dann erstazlos.

Sinn einer relationalen Datenbank ist es ja auch redundante Daten zu vermeiden. Und eine Adresse 2x zu haben wäre ja dann redundant.
Gruß Klaus

GonzoWiefel

#2
Die Adressdaten sind in einer extra Tabelle und auch mit einem Schlüsselfeld verbunden. Ich möchte aber nicht aus einer Riesenmenge (mehrere 1000) Adressdaten eine Adresse für meinen neuen Datensatz heraussuchen, sondern ich möchte einen Adressdatensatz markieren/kopieren und diesen zu einem neuen Datensatz mit den gleichen Adressdaten hinzufügen. Es ist unerheblich, dass in der Adresstabelle gleiche Adressen enthalten sind, da der Verweis ( der Schlüssel) ja immer zu einem anderen Datensatz veweist. Auch doppelte Andressen gelten der Einfachheit halber als unterschiedliche Adressen.
Letztendlich suche ich einen Weg, einen Datensatz per Button zu kopieren und an anderer Stelle der Tabelle wieder einzufügen.     

MzKlMu

Hallo,
es ist de falsche Weg, auch wenn es Dir nicht gefällt. Du brauchst auch nur die Schlüsselzahl zu kopieren, da muss nix rausgesucht werdn. Einen anderen Vorschlag habe ich nicht.
Gruß Klaus

GonzoWiefel

#4
Die Zuordnung ist aber bei mir andersrum: eine Anfrage kann mehrere Kontaktadressen haben und nicht eine Adresse kann mehrere Anfragen machen. Daher sagte ich auch, dass gleiche Adressen trotzdem unterschiedliche Datensätze sind.

Ich möchte mit einem Button einen Adressdatensatz kopieren und bei einer anderen Anfrage diese Adresse (auch mit Button) einkopieren.

Dein Ansatz mag zwar meistens funktionieren, bei mir aber nicht...

MzKlMu

Hallo,
wenn Du redundante Daten speichern willst/musst, ist das Datenmodell falsch, da gibt es nichts zu rütteln dran.

Zeige mal ein Bild des Beziehungsfensters.

PS:
Du bist hier in einem Forum für Access, da gehören Fragen zum Datenmodell (und Zweifel daran) dazu wie das Salz in der Suppe. Und meist gibt es zu einem korrekten Datenmodell keine wirkliche Alternative.
Gruß Klaus

GonzoWiefel

#6
Wie gesagt, ein Vorgang kann n Adressdaten haben.
Adressen können sich auch nur durch die Institution unterscheiden.
Aber andere Vorgänge können auch Adressen aufweisen, die bereits in anderen Vorgängen verwendet wurden, deshalb mein o.g. Wunsch.
Sie dürfen in diesem Board keine Dateianhänge sehen.

Beaker s.a.

Mit einer n:m-Tabelle, in der Vorgänge und Kontakte zusammengeführt werden,
sollte das ohne Redundanz darstellbar sein.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MzKlMu

Hallo,
wie der Vorschreiber auch schon schrieb, ist das völlig problemlos über eine n:m Tabelle lösbar.
Das ist eine Tabelle zwischen Kontakt und Vorgang mit einem FS zum Vorgang und einem FS zum Kontakt.

Siehe hierzu:
https://www.access-tutorial.de/tabellen/nmbeziehung.htm

Und das ganze Tutorial:
https://www.access-tutorial.de/
Gruß Klaus

GonzoWiefel

hmm, aber wie sieht das denn jetzt praktisch aus? Ich will nicht jedesmal in das Adressformular die Adressdaten tippen, wenn sie schonmal da oder ähnlich da sind. Ich will aber auch nicht aus hunderten Adressen Adressen aussuchen. Geht das denn nicht mit dem Kopieren eines Datensatzes? Sch... auf Redundanz! Denn letztendlich sind es doch zwei verschiedene Adressen, wenn die Institution eine andere ist, obwohl im selben Haus. Oder nur Name und Telefonnummer unterschiedlich sind. Ich könnte mir und den Kollegen damit viel Tipparbeit ersparen....

trebuh

Hallo GonzoWiefel,

hmmm... ja und was genau möchtest jetzt kopieren?

Ich verstehe es z.B. mal so, du hast zum Beispiel ein Hochhaus mit 200 Wohnungen.
Um die Adresseingabe zu vereinfachen, möchtest Du die Adresse des Hochhauses kopieren,
und dann anschließend nur den Namen ändern?

Wenn dann noch andere Daten im dem Datensatz sind, z.B. Telefon, Postfach, Email und und und,
müssen diese Daten ja auch geändert werden.

In der Zeit, wo man den Datensatz zum Kopieren suchen und die Daten anpassen muss, hat man den Rest ja auch geschrieben!?

Wenn sich tatsächlich nach Eingabe eines Datensatzes einige Dinge im nächsten neuen Datensatz wiederholen, kann man ja den Inhalt der Textfelder intern speichern, und die Felder beim neuen Datensatz im vorfeld schon ausfüllen.

Wenn es das ist, was Du meinst.

Gruß
Hubert


MzKlMu

Hallo,
@GonzoWiefel
Du denkst zu kompliziert.
Bei einem korrkten Aufbau der Datenbank wird auch kopiert, aber eben nur den Fremdschlüssel der auf die Adresse verweist.
Auch das Aussuchen aus vielen Datensätzen per Kombi ist ein Kinderspiel. Du suchst über die Straße (die nicht so häufig vorkommt wie der Name). Das Kombi kann automatisch ergänzen, dann bist Du mit der Eingabe von wenigen Zeichen bei der richtigen Adresse.
Gruß Klaus

Beaker s.a.

Hallo,
@Hubert
ZitatUm die Adresseingabe zu vereinfachen, möchtest Du die Adresse des Hochhauses kopieren,
und dann anschließend nur den Namen ändern?
Wozu? Eine Adresse ist eine Adresse, die einem oder 200 Bewohnern 1:n zugeordnet
werden kann.
ZitatWenn dann noch andere Daten im dem Datensatz sind, z.B. Telefon, Postfach, Email und und und,
müssen diese Daten ja auch geändert werden.
Diese Daten sind von der Adresse völlig unabhängig und werden nur über den FK damit
in Beziehung gesetzt (verbunden).

@Gonzo
ZitatIch will aber auch nicht aus hunderten Adressen Adressen aussuchen.
Na ja, das ist eben Aufgabe des Entwicklers hier für eine sinnvoll eingeschränkte
Auswahl zu sorgen.
ZitatSch... auf Redundanz!
Die dir aber u.U. schnell vor die Füsse fällt. Dein nächstes Problem kann ich schon
erahnen.

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)