PDA

Vollständige Version anzeigen : Daten in Zweite Tabelle eintragen


Gernot
04.07.2001, 13:28
Hallo an die Access Runde,

ich habe eine Funktion geschrieben, die den Inhalt eines bestimmten Tabellenfeldes prüft und bei einer bestimmte Bedingung in zwei andere Felder des gleichen Datensatzes eine Eintragung macht.
Wenn Feld1 „abc“ enthält, wird in Feld 8 "Alfa Beta Gamma" und in Feld 9 "Analog " zum Beispiel eingetragen. Es wird nacheinander die ganze Tabelle durchlaufen.

Beispiel ohne Fehlerbehandlung:

Dim db As Database
Dim rs As Recordset
Dim Anz&, I&

Set db = CurrentDb()

On Error Resume Next
Set rs = db.OpenRecordset(TabName$, dbOpenDynaset)

rs.MoveLast
Anz = rs.RecordCount

rs.MoveFirst
For I = 1 To Anz

DoEvents
rs.Edit

If rs("Feld1") = "abc" Then
rs("Feld8") = "Alfa Beta Gamma"
rs("Feld9") = "Analog Garantie"
End If

rs.UPDATE
rs.MoveNext
Next I
rs.Close
End sub

Die Funktion funktioniert soweit, aber ich will sie so abändern , dass die Daten die die Bedingung erfüllen nicht in die selbe, sondern in eine neue Tabelle eingetragen werden, Datensatz für Datendatz.

Das schaffe ich leider nicht mit meinen noch geringen Kenntnissen.

Wer weiß da eine Lösung?

Grüße Gernot

Jochum Rainer
04.07.2001, 13:56
Hallo!

Hier ein Beipspiel
Dim WS As Workspace
Dim DB As Database
Dim rsD As Recordset
Dim rsT As Recordset
Dim kundennr$
Dim datum$

Set WS = DBEngine(0)
Set DB = WS(0)
Set rsD = DB.OpenRecordset("tab1", DB_OPEN_DYNASET)
Set rsT = DB.OpenRecordset("tab2", DB_OPEN_DYNASET)


rsD.MoveFirst

Do While rsD.EOF = False
If rsD!kennung = "G" Then
kundennr$ = rsD!kundennr
datum$ = rsD!datum
renr$ = rsD!renr

rsT.AddNew -> Wechsel auf die zweite DB
rsT!kundennr = kundennr$
rsT!datum = datum$
rsT!renr = renr$
rsT.Update
End If

rsD.MoveNext

Loop

Gruesse
Rainer Jochum

Gernot
05.07.2001, 06:49
Guten Morgen Jochum Rainer,

vielen Dank für die Hilfe, ich werde das ausprobieren. Ich denke ich habe das Prinzip erkannt, darauf kommt es an!! Man kann also mehrere Tabellen gleichzeitig öffnen und bearbeiten, das ist neu für mich!!
Wenn ich Probleme habe, melde ich mich noch mal.

Noch einen schönen Tag

Grüße Gernot