Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Access, aktuellen Datensatz kopieren und als Neuer anfügen

Frage Microsoft Microsoft Office

Mitglied: Valume91

Valume91 (Level 1) - Jetzt verbinden

09.06.2009, aktualisiert 09:35 Uhr, 31703 Aufrufe, 17 Kommentare

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?

Mit freundlichen Grüßen Valume
Mitglied: jato11
09.06.2009 um 23:47 Uhr
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
Bitte warten ..
Mitglied: Valume91
10.06.2009 um 13:32 Uhr
Hi Jato

Erstmal danke für deine Antwort!
Das mit dem Makro wäre schon eine Möglichkeit. Jedoch, wie kann ich die Felder "O Nummer" und "EANummer" vom kopieren ausschliessen? Bzw. wie kann ich diese nachträglich löschen?

Mit freundlichen Grüßen Valume
Bitte warten ..
Mitglied: jato11
10.06.2009 um 15:10 Uhr
Da könntest du mit "Gehe zu Steuerelement" hingehen und den Inhalt löschen.

Ich würde es aber mit der Anfügeabfrage versuchen.

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Valume91
15.06.2009 um 08:51 Uhr
Hi jato
Leider führt bei mir beides zu einem Fehler:

Die Anfügeabfrage bringt eine Schlüsselverletzung.
Und bei der Methode mit dem Makro bringt er eine Meldung:
"Aktuelles Feld muss dem Verknüpfungsschlüsel "etwas_ID" auf der 1 Seite der 1-n beziehung entsprechen. Und danach bringt er noch die Meldung "Ungültiger Felddatentyp".
Gibt es sonst noch eine Möglichkeit?

Gruss Valume
Bitte warten ..
Mitglied: jato11
15.06.2009 um 09:00 Uhr
Schau ich mir heute Abend an, dass muss funktionieren.

Welche Access-Version hast du?

Viele Grüße
Torsten
Bitte warten ..
Mitglied: Valume91
15.06.2009 um 11:23 Uhr
Hi jato
Ich arbeite mit Access 2003.
Danke für deine Hilfe!

Gruss Valume
Bitte warten ..
Mitglied: jato11
17.06.2009 um 12:10 Uhr
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
Bitte warten ..
Mitglied: Valume91
17.06.2009 um 13:54 Uhr
HI jato

Danke für deine Hilfe!
Wie soll ich das mit den Schlüsseln machen?
Ich habe nämlich in meiner Abfrage auf der das Formular basiert mehrere verschiedene Tabellen ausgewählt.
Und ich kann ja nur jeweils an eine Tabelle Anfügen. (Am besten wäre natürlich wenn man an eine Abfrage anfügen könnte)
Wie soll ich das machen?

Gruss Valume
Bitte warten ..
Mitglied: jato11
24.06.2009 um 22:23 Uhr
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
Bitte warten ..
Mitglied: scaku1974
28.03.2010 um 14:26 Uhr
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
Bitte warten ..
Mitglied: jato11
28.03.2010 um 18:54 Uhr
Hallo Steffen,

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
Bitte warten ..
Mitglied: scaku1974
28.03.2010 um 19:09 Uhr
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
Bitte warten ..
Mitglied: jato11
28.03.2010 um 20:23 Uhr
Versuch es mal nach meinem Muster vielleicht funktioniert das

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
Bitte warten ..
Mitglied: scaku1974
28.03.2010 um 23:06 Uhr
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
Bitte warten ..
Mitglied: jato11
29.03.2010 um 16:30 Uhr
Klasse,
lag es nur am Syntax?

Was passiert denn wenn Du F9 drückst?

Wie ist die Datenherkunft ? Direkt auf die Tabelle oder über eine Abfrage?

Eine Abfrage kannst Du neu per Makro aufrufen (ich glaube das habe ich schon gemacht - muss ich nachsehen)


Viele Grüße
Torsten
Bitte warten ..
Mitglied: scaku1974
30.03.2010 um 00:04 Uhr
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
Bitte warten ..
Mitglied: jato11
30.03.2010 um 15:52 Uhr
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
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst Access mit VBA vorgefertigte Texte an Datensatz anfügen (4)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Datensatz mit 2 Felder anfügen Access (2)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

Datenbanken
gelöst Datensatz hinzufügen, nicht überschreiben Access (19)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...