per Recordset Kundennummern in Bewegungsdaten ändern(umschreiben)

05/11/2008 - 15:26 von Stefan Paesch | Report spam
Moin zusammen!

In der Tabelle "tbl_UmschlüsselungKdNr" stehen alte Kundennummern und
die dazu gehörenden neue Kundennummern.
Ich möchte die "tbl_UmschlüsselungKdNr" durchlaufen und wenn eine der
alten Kundennummer in einer anderen Tabelle "tbl_Hauptforderung"
gefunden wird, soll diese überschrieben werden.
In den Bewegungsdaten steht manchmal acht KdNr untereinander (8
Verkaufsrechnungen).

So hatte ich mir das gedacht:

Schaue in "tbl_UmschlüsselungKdNr" den ersten Datensatz an und suche
dann die "tbl_Hauptforderung" vom ersten bis zum letzten Datensatz
durch. Nehme dann den nàchsten Datensatz aus
"tbl_UmschlüsselungKdNr" .

Funktioniert leider nicht, hàngt sich bei rs1.FindFirst auf!
Hat jemand einen Tipp was ich falsch mache?

Danke für Eure Hilfe Stefan.

WinXP pro, Acc2003


Dim vAlteKdNr, vNeueKdNr As String

Dim db As DAO.Database
Dim rs1, rs2, rs3, rs4, rs5, rs6, rs7 As DAO.Recordset
Set db = CurrentDb
Set rs1 = db.OpenRecordset("tbl_Hauptforderung", dbOpenDynaset)
...
Set rs7 = db.OpenRecordset("tbl_UmschlüsselungKdNr",
dbOpenDynaset)

Do Until rs7.EOF = True

vAlteKdNr = rs7!alteKdNr
vNeueKdNr = rs7!neueKdNr

Do Until rs1.EOF
rs1.FindFirst "[VorgangNr]= " & "'" & vAlteKdNr & "'"
If Not rs1.NoMatch Then
rs1.Edit
rs1![VorgangNr] = vNeueKdNr
rs1.Update
End If
rs1.MoveNext
Loop

Do Until rs2.EOF
rs1.FindFirst "[VorgangNr]= " & "'" & vAlteKdNr & "'"
If Not rs2.NoMatch Then
rs2.Edit
rs2![VorgangNr] = vNeueKdNr
rs2.Update
End If
rs2.MoveNext
Loop
...
...

rs7.MoveNext' zum nàchsten Datensatz in der KdNr-
Umschlüsselungstabelle
Loop

MsgBox "Die Kundennummer wurden erfolgreich umgeschrieben"


Set rs1 = Nothing
.
set rs7 = Nothing
Set db = Nothing
 

Lesen sie die antworten

#1 Peter Doering
05/11/2008 - 15:48 | Warnen spam
Hallo,

Stefan Paesch wrote:

In der Tabelle "tbl_UmschlüsselungKdNr" stehen alte Kundennummern und
die dazu gehörenden neue Kundennummern.
Ich möchte die "tbl_UmschlüsselungKdNr" durchlaufen und wenn eine der
alten Kundennummer in einer anderen Tabelle "tbl_Hauptforderung"
gefunden wird, soll diese überschrieben werden.
In den Bewegungsdaten steht manchmal acht KdNr untereinander (8
Verkaufsrechnungen).

So hatte ich mir das gedacht:

Schaue in "tbl_UmschlüsselungKdNr" den ersten Datensatz an und suche
dann die "tbl_Hauptforderung" vom ersten bis zum letzten Datensatz
durch. Nehme dann den nàchsten Datensatz aus
"tbl_UmschlüsselungKdNr" .

Funktioniert leider nicht, hàngt sich bei rs1.FindFirst auf!
Hat jemand einen Tipp was ich falsch mache?



Probier's lieber so:

UPDATE tbl_Hauptforderung AS H INNER JOIN tbl_tbl_UmschlüsselungKdNr AS U
ON H.VorgangNr=U.alteKdNr
SET H.VorgangNr=U.neueKdNr

Funktioniert logischerweise nur einmal.

Gruss - Peter

Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen