bongcrusher Geschrieben 27. Juli 2001 Teilen Geschrieben 27. Juli 2001 Ich brauch schon wieder ´nen Schubs. Ich suche nach ´ner Möglichkeit, Datensätze möglichst simpel zu kopieren(mit VBA). Die Sätze sind bereits mit Daten gefüllt und die ID muß geändert werden(kein Autowert verwendet). Die Felder explizit zu benennen entfällt aufgrund der Masse (ca. 2500 und es werden immer mehr). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 27. Juli 2001 Teilen Geschrieben 27. Juli 2001 Hi, 2500 Datenfelder??? :eek: :eek: :eek: Oder meintest du Datensätze?? :confused: Wohin willst du die denn kopieren?? In eine neue oder eine vorhandene Tabelle?? Und in wie weit muß die ID verändert werden, einfach z.B. 20000 dazu, oder ganz anderst??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bongcrusher Geschrieben 30. Juli 2001 Autor Teilen Geschrieben 30. Juli 2001 Moin Wolle, schönes Wochenende gehabt? ca. 2500 Datenfelder!!! (in Entwicklung, deshalb nur ca. 10 Datensätze) entwickle eine Kalkulationsdatenbank für Einfamilienhäuser. Musste die Daten pro Projekt auf mehrere Thementabellen aufteilen -> zu viele Felder pro Tabellenobjekt Um nicht bei jedem neuen Projekt komplett neue Daten eingeben zu müssen, sollen die Daten (Datensatz) eines bestehenden Projektes in einen neuen Datenatz eingefügt werden. Anschließend muß die Projekt_ID auf den Neuesten Datensatz in allen Thementabellen (der aufgeteilte Sch***) angeglichen werden. Die originale Projektnummer ist ein AutoWert, alle anderen sind entsprechend frei wählbare Zahlen (indiziert etc.). Die Verknüpfung aller Tabellen war nicht möglich, da der Speicher für ein Verknüpfungsobjekt nicht ausreichte (entspr. Fehlermeldung). Ist alles nicht so einfach - war aber auch mein Abschlußprojekt Sind die Infos jetzt ausreichend? CU Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 30. Juli 2001 Teilen Geschrieben 30. Juli 2001 Hi, hat ein bischen gedauert, aber ich hatte heute Mittag kaum Zeit und hab auch erstmal probieren müssen. Private Sub Befehl0_Click() Dim db As Database Dim rst As Recordset Set db = CurrentDb Set rst = db.OpenRecordset("Select * from users") rst.MoveFirst While Not rst.EOF And Not rst.BOF rst.Edit For i = 0 To rst.Fields.Count - 1 MsgBox (rst.Fields.Item(i).Name) If i = 1 Then rst.Fields.Item(i) = "hghgjhgjhgj" End If Next rst.Update rst.MoveNext Wend End Sub Über 2 Recordset's könntest du das lösen. In dem Beispiel oben zählst du mit der For-Next Schleife durch die Felder (in einem Datensatz). Die MsgBox gibt die Namen der Felder aus. In der If-Abfrage weise ich dem 2. Feld (Fängt ja bei 0 an) einen neuen Wert zu. Wenn du jetzt 2 Recordset's laufen lässt (einer in der alten Tabelle und einer in der neuen) und dem 2. Recordset mit rst2.Fields.Item(i) = rst1.Fields.Item(i) die Werte zuweist müßte es klappen. Statt rst.Edit mußt du dann halt rst.AddNew nehmen. ACHTUNG: Wenn du das Beispiel oben nimmst kommst du wegen der MsgBox bei sovielen Feldern fast nicht mehr raus. Ich mußte auch mit Task Beenden raus, weil ich viele Datensätze in der Tabelle hatte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bongcrusher Geschrieben 31. Juli 2001 Autor Teilen Geschrieben 31. Juli 2001 Danke, Wolle! Deine Lösung passt wie die Faust auf´s Auge Ich mach mich heute ab in die Sommerferien - viel Spaß alle miteinander! CU Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 31. Juli 2001 Teilen Geschrieben 31. Juli 2001 Na dann wünsche ich dir einen schönen Urlaub... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.