Datensätze kopieren und in die gleiche Tabelle einfügen

05/04/2008 - 18:42 von Frank Kötting | Report spam
Hallo Access-Freunde,

ich arbeite mit Access 2002 Sp2. und habe folgendes Problem.


Ich habe ein Formular mit Unterformular.

Im Formular werden die Grunddaten für eine Rezeptur angezeigt. -> Name der
Rezeptur, Basis für wie viele Personen die Rezeptur geschrieben wurde, wie
groß ist der Zeitaufwand beim Kochen usw.
Im Unterformular (Endlosformular) stehen das dann die Zutaten für die
Rezeptur -> Zuatatbezeichnung, Menge, Einheit

Nun kommt es auch vor das man aus Rezepturen Abwandlungen herstellen kann.
Z.B. Steinpilzrisotto, Basilikumrisotto, Tomatenrisotto usw. da liegt es
nah ein Rezept immer wieder zu kopieren und dann leicht zu veràndern. Dies
würde ich gerne mit "einem Knopfdruck" tun.

Das Formular mit den Grunddaten bekomme ich kopiert. Dabei lasse ich über
die Inputbox eine neue Bezeichnung für die Rezeptur eintragen.

******

Private Sub Kopieren_Click()

Dim db As DAO.Recordset
Dim strRsp As String

Set db = CurrentDb.OpenRecordset("tbl_Rezeptur", dbOpenTable)
strRsp = InputBox("Rezepturbezeichnung")

With db
.AddNew
![Ge_Bez] = strRsp
![Ge_Zubereitung] = Me.Ge_Zubereitung
![Ge_Kategorie_ID] = Me.Ge_Kategorie_ID
![Ge_Zeitaufwand] = Me.Ge_Zeitaufwand
![Ge_Zahl] = Me.Ge_Zahl
![Ge_Pers] = Me.Ge_Pers

.Update
End With

db.Close
Set db = Nothing

End Sub

*****

Nur habe ich im Unterformular immer mehr als einen Datensatz und da weiß ich
nicht wie ich alle Datensàtze, egal ob es 2 oder 20 sind in die Tabelle
kopiert bekomme. Das Unterformular basiert auf die Tabelle tbl_Zutaten.
Verbindung besteht über "Ge_ID" das bei der Tabelle "tbl_Rezeptur" ein
Autowert ist und in der Tabelle "tbl_Zutaten" zugeordnet wird.

Ich hoffe ich habe alle relevanten Angaben gemacht damit Ihr mir helfen
könnt.
Vielen Dank im Voraus für Eure Hilfe.

Frank Kötting
 

Lesen sie die antworten

#1 Thomas Möller
05/04/2008 - 19:00 | Warnen spam
Hallo Frank,

"Frank Kötting" schrieb:
Ich habe ein Formular mit Unterformular.
Im Formular werden die Grunddaten für eine Rezeptur angezeigt. -> Name
der Rezeptur, Basis für wie viele Personen die Rezeptur geschrieben
wurde, wie groß ist der Zeitaufwand beim Kochen usw.
Im Unterformular (Endlosformular) stehen das dann die Zutaten für die
Rezeptur -> Zuatatbezeichnung, Menge, Einheit

Nun kommt es auch vor das man aus Rezepturen Abwandlungen herstellen
kann. Z.B. Steinpilzrisotto, Basilikumrisotto, Tomatenrisotto usw. da
liegt es nah ein Rezept immer wieder zu kopieren und dann leicht zu
veràndern. Dies würde ich gerne mit "einem Knopfdruck" tun.

Das Formular mit den Grunddaten bekomme ich kopiert. Dabei lasse ich
über die Inputbox eine neue Bezeichnung für die Rezeptur eintragen.

Nur habe ich im Unterformular immer mehr als einen Datensatz und da
weiß ich nicht wie ich alle Datensàtze, egal ob es 2 oder 20 sind in
die Tabelle kopiert bekomme. Das Unterformular basiert auf die Tabelle
tbl_Zutaten. Verbindung besteht über "Ge_ID" das bei der Tabelle
"tbl_Rezeptur" ein Autowert ist und in der Tabelle "tbl_Zutaten"
zugeordnet wird.



das kannst Du mit einer Anfügeabfrage lösen. Dazu erstellst Du Dir
ersteinmal eine Auswahlabfrage. Diese Abfrage zeigt Dir alle Datensàtze
der Tabelle Zutaten an. Diese Abfrage grenzt Du durch ein Kriterium auf
das aktuelle Rezept ein. Jetzt wandelst Du die Auswahlabfrage um in eine
Anfügeabfrage. Für das Feld mit der ID des Rezepts tràgst Du die ID des
neuen Rezepts ein. Wenn Du diese Abfrage jetzt von Hand ausführst,
werden alle Zutaten kopiert.
Den SQL-String dieser Abfrage kannst Du jetzt in Deinen VBA-Code in eine
String-Variable einfügen. Dann ersetzt Du die Werte für die IDs im Code
durch Variablen, die Du vorher mit dem passenden Inhalt gefüllt hast. Am
Ende führst Du die Abfrage mittels CurrentDB.Execute aus.

HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen