Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: JochenKo am Januar 04, 2013, 15:11:54

Titel: Datensatz mit Untertabelle duplizieren/kopieren
Beitrag von: JochenKo am Januar 04, 2013, 15:11:54
Hallo, ich kämpfe hier schon seit Tagen mit einem Problem und auch die Suche im Netz hat keine funktionierende Lösung hervorgebracht:


Ich möchte in einer Auftragsverwaltung einen Datensatz (Auftrag) duplizieren:

Diese Aufträge bestehen u.a. aus Datum, Auftragsnummer, Firma, unterschiedlich vielen Artikeln (mit Menge, Bezeichnung, Einzelpreis), Bemerkung, Brutto- und Nettopreis (Berechnet aus Menge und Einzelpreis der einzelnen Artikel).
Die Artikel befinden sich in einer separaten Tabelle und sind über die Auftrags-ID verknüpft.

Tabelle Auftrag:
ID__Datum__Auftrags-Nr.__Firma____Nettopreis__Bruttopreis__Bemerkung
3___3.1.13__0003/13_____Meyer___10,00______10,19_______Bemerkung3
2___3.1.13__0002/13_____Bauer___10,00______10,19_______Bemerkung2
1___2.1.13__0001/13_____Müller___10,58______14,97_______Bemerkung1

Tabelle Artikel:
ID_Menge_Artikel___Preis
1__2_____Artkel1___5,99
1__10____Artikel2___2,99
2__2_____Artikel3___10,00

(Die ersten beiden Artikel gehören also zu Auftrag 1 der dritte zu Auftrag 2)

Bei Betätigung eines Buttons soll der markierte Datensatz (Auftrag), inklusive verbundener Datensätze (externe Tabelle: Artikel), dupliziert werden. Allerdings soll eine neue Auftragsnummer vergeben werden das aktuelle Datum zugewiesen und verschiedene Felder nicht übernommen werden.

Meine Lösung:
- Ich schreibe die Interne ID des markierten Datensatzes in eine öffentliche Variable (VBA)
- Erstelle einen neuen Datensatz (vergebe eine neue Auftragsnummer und das aktuelle Datum) (Makros/VBA)
- und kopiere die einzelnen Felder aus dem Ursprungsdatensatz (den ich über die Variable finde) in den neuen/aktuellen Datensatz. (VBA) Beispiel:
[Forms]![Auftrag]![Firma] = DLookup("[Firma]", "Auftrag", "[intern-nr]=[AktFld1]")

Das funktioniert auch einwandfrei, bis auf einen Punkt:
Die Artikel, die sich in der separaten Tabelle befinden bekomme ich nicht in den neuen Auftrag.


Versuch1: Ich wollte den Ansatz, Datensätze mit derselben ID suchen und kopieren, hier ebenfalls verwenden. Dies ist daran gescheitert, dass es jetzt nicht nur einen Datensatz, aus dem die Felder kopiert werden müssen, sondern eine Variable Anzahl gibt.
Gibt es hier eine Möglichkeit mit einer Schleife in VBA zuarbeiten? Suche ersten Datensatz mit entsprechender ID, erstelle neuen Datensatz (Artikel), dann kopiere dann suche nächsten Datensatz mit der ID usw.

Versuch2: Bei der Suche nach einer Lösung habe ich folgendes gefunden. Hier ist es wieder an der Tabelle Artikel gescheitert:
http://allenbrowne.com/ser-57.html


Mir wäre eine Lösung von Versuch1 am liebsten!

Schon mal vielen Danke für eure Hilfe!
Titel: Re: Datensatz mit Untertabelle duplizieren/kopieren
Beitrag von: DF6GL am Januar 04, 2013, 18:17:10
Hallo,

Crosspostings sind unerwünscht..

http://www.ms-office-forum.de/forum/showthread.php?t=296189
http://www.office-loesung.de/ftopic568170_0_0_asc.php
Titel: Re: Datensatz mit Untertabelle duplizieren/kopieren
Beitrag von: JochenKo am Januar 04, 2013, 18:43:52
Hallo DF6GL,

und warum? Wenn ich keine Antwort bekomme suche ich mir natürlich eine andere Anlaufstelle für meine Frage. Ich weiß leider nicht wo da das Problem sein soll. (?)

Grüße Jochen
Titel: Re: Datensatz mit Untertabelle duplizieren/kopieren
Beitrag von: database am Januar 04, 2013, 18:58:08
Hallo,

ZitatWenn ich keine Antwort bekomme ...

Wenn du KEINE Antwort auf eine Frage bekommst wird auch kein Mensch was dagegen haben, wenn du die selbe Frage an anderer Stelle nochmal stellst.
Du hast aber Antwort bekommen - bevor du die Frage hier reingestellt hast, und auch noch danach.
Beim Wechsel in ein anderes Forum sollte man dies im Herkunftsforum auch bekanntgeben - der Fairness wegen.
Könnte ja sein, dass in mehreren Foren an der gleichen Frage mit den gleichen Lösugen gearbeitet wird - und das mag dann gar keiner.  ;)

Titel: Re: Datensatz mit Untertabelle duplizieren/kopieren
Beitrag von: JochenKo am Januar 04, 2013, 19:49:14
Ok, verstehe. Ja, ich hatte die Antwort im ersten Forum übersehen und deshalb in beiden anderen Foren gepostet. Ich bitte um Entschuldigung und gelobe Besserung. ;)
Titel: Re: Datensatz mit Untertabelle duplizieren/kopieren
Beitrag von: database am Januar 04, 2013, 21:15:52
Hallo,

nun gut, wenn's im anderen Forum nix wird ...

Im Anhang findest du ein Beispiel mit dem es funktioniert, die Daten zu kopieren.

Abgesehen davon, dass dein Datenmodell ordentliche Mängel in Bezug auf Normalisierung aufweist ... !
Wenn die Tabellen über die AuftragsID in Beziehung stehen, muss der neue Datensatz der Auftragstabelle aktualisiert werden BEVOR du die Artikel-Datensätze kopiertst!

Der Code zum Kopieren befindet sich im Modul!

HTH

p.s. ich habe die Tabellen nach deinen Angaben in der Anfrage erstellt - die Codes im anderen Forum zeigen andere Feldbezeichnungen!


[Anhang gelöscht durch Administrator]