Wie kann man den ausgewaehlten Datensatz eines Recordsets der Tabelle "A"
in eine andere gleich strukturierte Tabelle "B" der gleichen Datenbank
verschieben.
Tschau
automatisch mit Aktionsabfragen:
Eine Tabellenanfügeabfrage kopiert Datensätze von Quell- in Zieltabelle.
Eine Löschabfrage löscht dann die Datensätze in der Quelltabelle.
kopieren + löschen = verschieben.
Josef
Walter Hess schrieb in Nachricht
<7EG11...@310049863249-0001.dialin.t-online.de>...
>automatisch mit Aktionsabfragen:
> Eine Tabellenanfuegeabfrage kopiert Datensaetze von Quell- in
>Zieltabelle. Eine Loeschabfrage loescht dann die Datensaetze in der
>Quelltabelle. kopieren + loeschen = verschieben.
Danke fuer die schnelle Antwort.
Diese beiden Methoden kenne ich, mit denen kann ich in meiner VB-Funktion
leider nicht arbeiten.
Ich moechte innerhalb einer Do Loop Schleife den aktiven DS von Tabelle1 =
Recordset1 ausschneiden und in Tabelle2 = Recordsets2 einfuegen.
Wie man den DS feldweise in eine andere Tabelle einfuegt ist mir bekannt.
Tschau
Warum verwendest Du nicht eine Tabellenanfügeabfrage/Löschabfrage
mit DoCmd.RunSQL und DoCmd.SetWarnings False?
Dies sollte schneller sein als Do/Loop Schleifen.
Josef
Walter Hess schrieb in Nachricht
<7EG1M...@310049863249-0001.dialin.t-online.de>...
du musst in VBA beide Tabellen öffnen
Dim dbs As Database, rst1 As Recordset, rst2 As Recordset
Set dbs = OpenDatabase("Nordwind.mdb")
Set rst1 = dbs.OpenRecordset("Tabelle A")
Set rst2 = dbs.OpenRecordset("Tabelle B")
Nun kannst du von rst1 Daten lesen und bei rst2 schreiben.
Bevor du schreibst, musst du einen neuen Datensatz erstellen
rst2.AddNew
rst2![Feld1] = rst1![Feld1]
rst2![Feld2] = rst1![Feld2]
...
oder
rst2 = rst1
und zum schluss mit
rst2.update
schreiben.
rst1.close
rst2.close
dbs.close
Sehe die mal die Hilfe für AddNew oder OpenRecordset / First Last Funktionen
... nach.
der Rest müsste mit der Hilfe zu schaffen sein.
mfg WE :-)
Walter Hess <Hess...@t-online.de> schrieb in im Newsbeitrag:
7EG11...@310049863249-0001.dialin.t-online.de...
> Hallo
>
> Wie kann man den ausgewaehlten Datensatz eines Recordsets der Tabelle "A"
> in eine andere gleich strukturierte Tabelle "B" der gleichen Datenbank
> verschieben.
>
> Tschau
>Per VBA habe ich bisher nur Datensaetze innerhalb eines Recordsets
>kopiert. Ich habe dies in Acc97 auch feldweise durchgefuehrt, damit ich
>jedes Feld beeinflussen kann:
>- Primaerschluessel eindeutig fuellen
>- Anlagedatum, Standardwerte, Gueltigkeitsregeln,...
>
>Warum verwendest Du nicht eine Tabellenanfuegeabfrage/Loeschabfrage
>mit DoCmd.RunSQL und DoCmd.SetWarnings False?
>Dies sollte schneller sein als Do/Loop Schleifen.
Mit Abfragen kann ich in meinem Fall nicht arbeiten.
Ich suche nur nach einer Moeglichkeit den gewaehlten DS des Recordsets der
Tabelle "A" komplett auf einmal in die gleich strukturierte Tabelle "B" zu
kopieren. Danach muss der DS aus Tabelle "A" geloescht werden (RS.Delete).
DS in Tabelle "A" ausschneiden und in Tabelle "B" einfuegen wird wohl
nicht gehen.
Das einzige Problem ist das komplette kopieren des DS.
AddNew und Feld fuer Feld einfuegen ist kein Problem.
Tschau
> rst2 = rst1
Genau das waehre es was ich suchte.
Wenn es da nicht den Kompilierungsfehler.
"Verwenden der Eigenschaft unzulaessig."
geben wuerde.
Ansonsten muesste ich nur noch rst1.Delete ausfuehren.
rst1 auschneiden und bei rst2 einfuegen geht wohl nicht.
Tschau
>>Wie kann man den ausgewaehlten Datensatz eines Recordsets der Tabelle
>>"A" in eine andere gleich strukturierte Tabelle "B" der gleichen
>>Datenbank verschieben.
>das geht ueber die Zwischenablage.
>Also: Tabelle "A" oeffnen, Datensatz markieren und in die
>Zwischenablage kopieren.
>Dann Tabelle "B" oeffnen, neuen Datensatz markieren und Daten aus der
>Zwischenablage einfuegen
Ja so kann man es manuell machen.
Ich moechte es mit VB durchfuehren.
Tschau
Hi Walter,
bin z.Z. noch A2-ler aber sollte in A8 vielleich auch gehen,
Prinzip über Menue-Befehle und Zwischenablage in VBA:
DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20
DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, A_COPY, , A_MENU_VER20 'ab in die
Zwischenablage
DoCmd GoToRecord A_form, Me.name, A_NEWREC ' der neue Datensatz des
Formulars
DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, , A_MENU_VER20
DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, 4, , A_MENU_VER20 'Paste Append
aus der Zwischenablage
Menuebefehle nach A8 abändern.
Tschau,
Klaus Morbach
>DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, ,
>A_MENU_VER20 DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, A_COPY, ,
>A_MENU_VER20 'ab in die Zwischenablage
>
>
>DoCmd GoToRecord A_form, Me.name, A_NEWREC ' der neue Datensatz des
>Formulars
>DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, A_SELECTRECORD_V2, ,
>A_MENU_VER20 DoCmd DoMenuItem A_FORMBAR, A_EDITMENU, 4, , A_MENU_VER20
> 'Paste Append aus der Zwischenablage
Danke fuer den Tip. Habe das Problem mittlerweile vom Tisch.
Tschau