Access, aktuellen Datensatz kopieren und als Neuer anfügen
Wie kann ich in einem Formular per Button den aktuellen Datensatz kopieren und als neuer anlegen?
Guten Morgen liebes Forum
Ich komme mal wieder nicht weiter und brauche eure Hilfe.
Ich möchte in meinem Formular "Formular Produkteingabe" einen Button der mir den aktuell angezeigten Datensatz kopiert und als neuer Datensatz einfügt. Jedoch sollten die Felder "O Nummer" und "EANummer" nicht kopiert, bzw. nachträglich wieder gelöscht werden.
Wie stelle ich das an?
MfG Valume
Guten Morgen liebes Forum
Ich komme mal wieder nicht weiter und brauche eure Hilfe.
Ich möchte in meinem Formular "Formular Produkteingabe" einen Button der mir den aktuell angezeigten Datensatz kopiert und als neuer Datensatz einfügt. Jedoch sollten die Felder "O Nummer" und "EANummer" nicht kopiert, bzw. nachträglich wieder gelöscht werden.
Wie stelle ich das an?
MfG Valume
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 117770
Url: https://administrator.de/contentid/117770
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
17 Kommentare
Neuester Kommentar
Hallo Valume,
Das kannst du sicherlich mit einer Anfüge-Abfrage machen.
Bei Kriterium schreibst du das Feld vom Formular rein.
z.B. "=Formulare!Formular Produkteingabe!Produktname"
Als Makro könnte es auch gehen
- Datensatz makieren
- Kopieren
- am Ende anfügen
Ich habe es jetzt nicht geprüft. Sollte aber funktionieren
Viele Grüße
Torsten
Das kannst du sicherlich mit einer Anfüge-Abfrage machen.
Bei Kriterium schreibst du das Feld vom Formular rein.
z.B. "=Formulare!Formular Produkteingabe!Produktname"
Als Makro könnte es auch gehen
- Datensatz makieren
- Kopieren
- am Ende anfügen
Ich habe es jetzt nicht geprüft. Sollte aber funktionieren
Viele Grüße
Torsten
Ich habe es jetzt mit der Version 2000 ausprobiert.
-Ich habe eine Anfügeabfrage erstellt
- unter Ansicht die Funktionen eingeschaltet und unten inder Tabelle "Gruppierung" ausgewählt
- In der ersten Spalte trage ich folgende Werte ein:
Feld = "Produktname:[Formulare]![Formular Produkteingabe]![Produktname]"
Tabelle = leer
Funktion= Gruppierung
Sortierung leer
Anfügen an= Produktname
Kriterien= leer
Für die weiteren Felder kannst du es genauso aufbauen. Jedes Feld eine Spalte.
Die Felder die nicht brauchst lässt du weg
Das ganze starte ich im Formular per Makro (ÖffnenAbfrage) und anschließend (Aktualisieren Daten)
Viel Erfolg und viele Grüße
Torsten
-Ich habe eine Anfügeabfrage erstellt
- unter Ansicht die Funktionen eingeschaltet und unten inder Tabelle "Gruppierung" ausgewählt
- In der ersten Spalte trage ich folgende Werte ein:
Feld = "Produktname:[Formulare]![Formular Produkteingabe]![Produktname]"
Tabelle = leer
Funktion= Gruppierung
Sortierung leer
Anfügen an= Produktname
Kriterien= leer
Für die weiteren Felder kannst du es genauso aufbauen. Jedes Feld eine Spalte.
Die Felder die nicht brauchst lässt du weg
Das ganze starte ich im Formular per Makro (ÖffnenAbfrage) und anschließend (Aktualisieren Daten)
Viel Erfolg und viele Grüße
Torsten
Hallo Valume,
auch das funktioniert. Nur mit zwei Anfügeabfragen.
Beide Tabellen müssen ja etwas gemeinsames haben wie eine Artikel- oder Kundennummer,
sonnst könntest Du sie ja nicht verknüpfen.
Das Feld nimmst Du mit in die Abfrage.
Du kannst auch in der Abfrage einen neuen Wert berechnen z.B. [ArtikelNr ]+1
Viele Grüße
Torsten
auch das funktioniert. Nur mit zwei Anfügeabfragen.
Beide Tabellen müssen ja etwas gemeinsames haben wie eine Artikel- oder Kundennummer,
sonnst könntest Du sie ja nicht verknüpfen.
Das Feld nimmst Du mit in die Abfrage.
Du kannst auch in der Abfrage einen neuen Wert berechnen z.B. [ArtikelNr ]+1
Viele Grüße
Torsten
Hallo Torsten,
ich habe genau nach dieser Antwort gesucht und sie hier gefunden.
Nach der Übertragung auf meine Datenbank hinsichtlich Formular- und Feldnamen funktioniert es fast. Problem: wenn ich die Anfügeabfrage aufrufe, möchte Access immer ALLE in der Tabelle vorhandenen Datensätze anfügen (derzeit 902 Stück).
Ich kriege also den Bezug von dem Datensatz, bei dem ich gerade bin, wenn ich auf meinen Button drücke, nicht hin, dass NUR DIESER eine Datensatz dupliziert und hinten angehängt wird.
Kannst du mir hier bitte noch einen Tipp geben?
Das Problem mit dem IDs habe ich auch noch. Ich habe die ID in der Tabele ursprünglich aus mehreren einzelnen IDs verknüpfter Tabellen kombiniert. Die auf diese Weise erzeugte ID dient der Verknüpfung mit anderen Datensätzen.
Hintergrund: ich habe in der Tabelle Schulungsveranstaltungen (identifiziert an Workshop_ID), zu denen jeweils Termine und Referenten aus anderen Tabellen verknüpft werden. Also brauche ich für jeden einzelnen Datensatz eine eindeutige ID, sonst funktioniert die Zuordnung ja nicht.
Eine neue ID generieren kann ich nicht, weil sonst die Historie der bisherigen Datenbank (18 Monate Pflege und mehrere Tausend Verknüpfungen) im Eimer wären.
Wäre schön, wenn ihr mir noch weiterhelfen könntet.
Danke
Steffen
ich habe genau nach dieser Antwort gesucht und sie hier gefunden.
Nach der Übertragung auf meine Datenbank hinsichtlich Formular- und Feldnamen funktioniert es fast. Problem: wenn ich die Anfügeabfrage aufrufe, möchte Access immer ALLE in der Tabelle vorhandenen Datensätze anfügen (derzeit 902 Stück).
Ich kriege also den Bezug von dem Datensatz, bei dem ich gerade bin, wenn ich auf meinen Button drücke, nicht hin, dass NUR DIESER eine Datensatz dupliziert und hinten angehängt wird.
Kannst du mir hier bitte noch einen Tipp geben?
Das Problem mit dem IDs habe ich auch noch. Ich habe die ID in der Tabele ursprünglich aus mehreren einzelnen IDs verknüpfter Tabellen kombiniert. Die auf diese Weise erzeugte ID dient der Verknüpfung mit anderen Datensätzen.
Hintergrund: ich habe in der Tabelle Schulungsveranstaltungen (identifiziert an Workshop_ID), zu denen jeweils Termine und Referenten aus anderen Tabellen verknüpft werden. Also brauche ich für jeden einzelnen Datensatz eine eindeutige ID, sonst funktioniert die Zuordnung ja nicht.
Eine neue ID generieren kann ich nicht, weil sonst die Historie der bisherigen Datenbank (18 Monate Pflege und mehrere Tausend Verknüpfungen) im Eimer wären.
Wäre schön, wenn ihr mir noch weiterhelfen könntet.
Danke
Steffen
Hallo Steffen,
der Datensatz muss ja etwas eindeutigen haben wie Kunden Nr, Artikel Nr, o.ä.
Dann trage in der Abfrage bei dem Feld unter Kriterien folgendes ein (Formular und Feldname anpassen):
"=Formulare!Formularname!Feldname"
Viele Grüße
Torsten
Ich kriege also den Bezug von dem Datensatz, bei dem ich gerade bin, wenn ich auf meinen Button drücke, nicht hin, dass NUR DIESER eine Datensatz dupliziert und hinten angehängt wird.
der Datensatz muss ja etwas eindeutigen haben wie Kunden Nr, Artikel Nr, o.ä.
Dann trage in der Abfrage bei dem Feld unter Kriterien folgendes ein (Formular und Feldname anpassen):
"=Formulare!Formularname!Feldname"
Viele Grüße
Torsten
Hallo Torsten,
das stand auch in der vorherigen Antwort und ich habs probiert. Die Abfrage wird aber unabhängig vom aktuellen Datensatz im Formular geöffnet.
Ich habe es zwischenzeitlich als Workaround mit einem Kriterium in der Abfrage gelöst (leeres Feld, die ID muss zur Ausführung manuell eingegeben werden). Das war der einzige Weg, um zu verhindern, dass immer alle Datensätze gezogen werden.
In dem Feld (heißt [Workshop_ID]) steht für jeden Datensatz ne andere ID. Wenn ich als Kriterium ne konkrete ID nehme, dann funktioniert es, aber die kann ich ja nicht fest eintragen, weil sie immer wieder anders ist. Wenn ich aber "=Formulare!Workshops_Eingabe_der_Termine!ID_Workshop" nehme, dann ist ja das Feld selbst das Kriterium für sich und lässt wieder alle 900 Einträge durch.
Oder ich bin zu doof. Sorry, ich komm mir grad ein bisschen vernagelt vor ;=)
Danke
Steffen
das stand auch in der vorherigen Antwort und ich habs probiert. Die Abfrage wird aber unabhängig vom aktuellen Datensatz im Formular geöffnet.
Ich habe es zwischenzeitlich als Workaround mit einem Kriterium in der Abfrage gelöst (leeres Feld, die ID muss zur Ausführung manuell eingegeben werden). Das war der einzige Weg, um zu verhindern, dass immer alle Datensätze gezogen werden.
In dem Feld (heißt [Workshop_ID]) steht für jeden Datensatz ne andere ID. Wenn ich als Kriterium ne konkrete ID nehme, dann funktioniert es, aber die kann ich ja nicht fest eintragen, weil sie immer wieder anders ist. Wenn ich aber "=Formulare!Workshops_Eingabe_der_Termine!ID_Workshop" nehme, dann ist ja das Feld selbst das Kriterium für sich und lässt wieder alle 900 Einträge durch.
Oder ich bin zu doof. Sorry, ich komm mir grad ein bisschen vernagelt vor ;=)
Danke
Steffen
Das mit der Hardcopy hat leider nicht so funktioniert wie ich wollte.
Versuch mal das Kriterium ohne Gleichheitszeichen und den Formularnamen und Feldnamen in eckige Klammern zu setzen
[Formulare]![Formularname]![Feldname]
Viele Grüße
Torsten
Guten Abend,
Respekt! Ich muss gestehen, dass ich es nicht geglaubt habe (weil schon so lang rumprobiert), aber es funktioniert! Geil!
An die ID des neuen Datensatzes hänge ich einen Timestamp dran - das hab ich aber schon vorher gebastelt ;=)
Letzte Frage erst mal: der neue Datensatz erscheint bisher nur, wenn ich das Formular schließe und wieder öffne. Die Aktion "AktualisierenObjekt" mit dem Formular in der Detailangabe funktioniert nicht.
In meinem Access2003 gibt es nur noch "AktualisierenDaten" im Makro-Editor. Da muss ich aber ein Steuerelement angeben, das dann gezielt aktualisiert wird. Aber das ganze Formular (inkl. eines gegebenenfalls manuell gesetzten Filters) wird nicht neu geladen, d.h. mein Datensatz ist da, aber ich seh ihn nicht.
Geht momentan auch so, aber könnte noch optimiert werden. Hast du nen Tipp dafür?
Besten Dank!
Steffen
Respekt! Ich muss gestehen, dass ich es nicht geglaubt habe (weil schon so lang rumprobiert), aber es funktioniert! Geil!
An die ID des neuen Datensatzes hänge ich einen Timestamp dran - das hab ich aber schon vorher gebastelt ;=)
Letzte Frage erst mal: der neue Datensatz erscheint bisher nur, wenn ich das Formular schließe und wieder öffne. Die Aktion "AktualisierenObjekt" mit dem Formular in der Detailangabe funktioniert nicht.
In meinem Access2003 gibt es nur noch "AktualisierenDaten" im Makro-Editor. Da muss ich aber ein Steuerelement angeben, das dann gezielt aktualisiert wird. Aber das ganze Formular (inkl. eines gegebenenfalls manuell gesetzten Filters) wird nicht neu geladen, d.h. mein Datensatz ist da, aber ich seh ihn nicht.
Geht momentan auch so, aber könnte noch optimiert werden. Hast du nen Tipp dafür?
Besten Dank!
Steffen
Hallo Torsten,
lag wohl am Syntax. Das "=" vielleicht...
Wenn ich F9 drücke, passiert gar nichts. Das hilft nur, wenn im Hintergrund die Daten z.B. einer Auswahlliste geändert wurden, um dann ohne neues Öffnen auch die neuen Einträge zu sehen... Aber das Formular wird deswegen nicht komplett neu eingelesen.
Die Daten aus dem Formular kommen aus einer Abfrage, die im Hintergrund eingerichtet ist und auf die Tabelle zugreift. Die Abfrage ist aber nicht als eigene Abfrage gespeichert, insofern kann ich sie nicht direkt per Makro ansteuern. Kann ich aber, wenn ich sie mit Namen speichere. Hab das mal so probiert. Nun öffnet Access am Ende des Makros die Abfrage (als Datenblatt). Ist also auch nichts.
Wie oben schon geschrieben, hat die Aktualisierung des Formulars auch nix gebracht. Mist. Und nu?
Weiß nicht, wie das hier so üblich ist. Ich schick dir auch gern mal die Datenbank gezippt...
Viele Grüße
Steffen
lag wohl am Syntax. Das "=" vielleicht...
Wenn ich F9 drücke, passiert gar nichts. Das hilft nur, wenn im Hintergrund die Daten z.B. einer Auswahlliste geändert wurden, um dann ohne neues Öffnen auch die neuen Einträge zu sehen... Aber das Formular wird deswegen nicht komplett neu eingelesen.
Die Daten aus dem Formular kommen aus einer Abfrage, die im Hintergrund eingerichtet ist und auf die Tabelle zugreift. Die Abfrage ist aber nicht als eigene Abfrage gespeichert, insofern kann ich sie nicht direkt per Makro ansteuern. Kann ich aber, wenn ich sie mit Namen speichere. Hab das mal so probiert. Nun öffnet Access am Ende des Makros die Abfrage (als Datenblatt). Ist also auch nichts.
Wie oben schon geschrieben, hat die Aktualisierung des Formulars auch nix gebracht. Mist. Und nu?
Weiß nicht, wie das hier so üblich ist. Ich schick dir auch gern mal die Datenbank gezippt...
Viele Grüße
Steffen
Hallo Steffen,
Ich mache für die Formulare und Berichte immer Abfragen und speicher sie entsprechend ab.
Das ist zwar nicht immer nötig, aber ich finde es besser.
Manchmal kann ich eine Abrfrage für mehrere Formulare bzw. Berichte nutzen.
Im Formular trage ich bei Datenherkunft die Abfrage für dieses Formular ein (nicht die Tabelle in der die Daten gespeichert sind)
Dann sollte es auch mit dem aktualisieren gehen.
Viele Grüße
Torsten
Ich mache für die Formulare und Berichte immer Abfragen und speicher sie entsprechend ab.
Das ist zwar nicht immer nötig, aber ich finde es besser.
Manchmal kann ich eine Abrfrage für mehrere Formulare bzw. Berichte nutzen.
Im Formular trage ich bei Datenherkunft die Abfrage für dieses Formular ein (nicht die Tabelle in der die Daten gespeichert sind)
Dann sollte es auch mit dem aktualisieren gehen.
Viele Grüße
Torsten