Belegnummern (gruppiert) per SQL ändern (per Recordset -> DB wird größer als 2 GB)

25/08/2010 - 11:03 von Stefan Paesch | Report spam
Moin zusammen,

ich habe eine Tabelle mit 2,9 Mio Datensàtzen. Diese sind nach nach
Belegnummer, dann Fibu-Kontonummer gruppiert.
Ich möchte die originale Belegnummer umschreiben, da das neue
Fibuprogramm, in das die Datensàtze importiert werden sollen, keine
alphanumerischen Werte akzeptiert.

z.B.:

ER100 Kto4711 1€
ER100 Kto4712 -1€

AR999 Kto0001 3€
AR999 Kto0002 -2€
AR999 Kto0003 -1€
usw.

soll ergeben:

1 Kto4711 1€
1 Kto4712 -1€

2 Kto0001 3€
2 Kto0002 -2€
2 Kto0003 -1€
usw.

Das habe ich aus Mangel an SQL-Kenntnissen per Recordset versucht. Es
wir mit Fehler 3049 bei ca. der Hàlfte der DS abgebrochen. Das Problem
ist, die DB hat die max. 2 GB erreicht. Vor Codausführung: DB-Größe
557 MB

Wie kann ich solche Massenànderung per Access-SQL umsetzten?

CodeAusschnitt zur verdeutlichung was ich versucht hhabe:

Do Until rs.EOF = True

vFolgeBelegNr = rs![Document No_]

If vAlteBelegNr = vFolgeBelegNr Then
vAlteBelegNr = rs![Document No_]
rs.Edit
rs![Document No_] = vNeueBelegNr
rs.Update
rs.MoveNext
Else
vAlteBelegNr = rs![Document No_]
vNeueBelegNr = vNeueBelegNr + 1
rs.Edit
rs![Document No_] = vNeueBelegNr
rs.Update
rs.MoveNext
End If
Loop

Vielen Dank und viele Grüße Stefan.

Acc2010, WINServer 8
 

Lesen sie die antworten

#1 Peter Doering
25/08/2010 - 12:33 | Warnen spam
Hallo,

Stefan Paesch wrote:

ich habe eine Tabelle mit 2,9 Mio Datensàtzen. Diese sind nach nach
Belegnummer, dann Fibu-Kontonummer gruppiert.
Ich möchte die originale Belegnummer umschreiben, da das neue
Fibuprogramm, in das die Datensàtze importiert werden sollen, keine
alphanumerischen Werte akzeptiert.

z.B.:
[...]
Wie kann ich solche Massenànderung per Access-SQL umsetzten?



Ich wuerde das anders angehen:

- In der Tabelle ein neues Feld vom Typ Autowert anlegen.
- Beim Speichern der Tabelle wird fuer jeden DS bereits eine lfd. Nr.
erzeugt.
- SQL:

UPDATE DeineTab SET [Document No_] = DeinAutowertfeld

Allerdings verstehe ich deine Vorgehensweise bez. Folgebeleg nicht ganz.
Kannst du das mal erlaeutern?

Gruss - Peter

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

Ähnliche fragen