PDA

Vollständige Version anzeigen : Wie NeuNummerierung von DS per Aktualisierungsabfrage?


Konrad B
06.03.2001, 10:40
Hallo Forum,

vielleicht entsinnt sich noch jemand an die "guten alten Tage" der Basic-Programmierung: da verwendete man Zeilennummern in 10er Sprüngen. Nach dem Dawischenschieben von Zeile 15 und 16 konnte man neu durchnummerieren...

Genau das ist auch mein Problem in einer Tabelle mit Zählerfeld. Es mag mir nicht gelingen, ein vorhandenes Feld per Änderungsabfrage (notfalls auch per VBA) neu in 10er Schritten durchzunummerieren (Sortierungskriteritum alte Nummerierung).

Bin am Ende meines Lateins - Für Tips wäre ich sehr dankbar!

Gruß Konrad

Nockenwelle
06.03.2001, 20:48
Hi,

sieht sehr nach copy und Paste aus was ich hier mache, aber ich musste letztens auch neue IDs erstellen.

z. B. kannst du dir auch eine gespeicherte Parameterabfrage erstellen, und diese ausführen.
z. B.:

PARAMETERS ADR_ID Long, ADR_ID_ORG Long;
INSERT INTO adresse ( adresse_id, name_1, name_2, strasse_1, hausnummer, staat, postleitzahl_str, ort_str_1, postfach, postleitzahl_pf, ort_pf_1 )
SELECT [ADR_ID] AS Ausdr1, adresse.name_1, adresse.name_2, adresse.strasse_1, adresse.hausnummer, adresse.staat, adresse.postleitzahl_str, adresse.ort_str_1, adresse.ort_str_2, adresse.postfach, adresse.postleitzahl_pf, adresse.ort_pf_1 FROM adresse
WHERE (((adresse.adresse_id)=[ADR_ID_ORG]));

(Ich weiss, diese Abfrage verweist in Quelle und Ziel auf die gleiche Tabelle, aber ich musste Datensätze dublizieren, und eine neue ID vergeben).

'Freien bereich Schaffen:
docmd.runsql "UPDATE asys_adresse SET adresse.adresse_id = [AdresseIDs]![ADRESSE_ID]+10000000;"


I=10
Set qdf = dbs.QueryDefs("erstelle neue Adressen")
do while not rst1.eof
qdf.Parameters![ADR_ID]= I
qdf.Parameters![ADR_ID_ORG]=rst2!rst2!ADR_ID
qdf.execute
I=I+10
docmd.runsql "delete from Adresse where ADR_ID=" & Rst2!ADR_ID &";"

loop


Vielleicht bin ich jetzt an einer Stelle durcheinander gekommen, aber des kriegst du als alter VBler schon hin:-).
Hießen die dinger zufällig PET?

Cu

Konrad B
13.03.2001, 15:23
Hallo Danke für den Tip! Ich habe noch eine Weile gebastelt. Das Ergebnis meiner Bemühungen sieht nun folgendermaßen aus:

Private Sub duchnummerieren()

Dim DB As DAO.Database
Dim Select1 As String
Dim RS As DAO.Recordset
Dim neuzaehl As Integer

Set DB = CurrentDb()
Select1 = "SELECT tblMaterial.Reihenfolge FROM tblMaterial ORDER BY blMaterial.Reihenfolge;"
Set RS = DB.OpenRecordset(Select1, dbOpenDynaset)
neuzaehl = 0

Do Until RS.EOF
zähler = zähler + 1
RS.edit
RS!Reihenfolge = (zähler * 10)
RS.Update
RS.MoveNext
Loop

RS.Close: Set RS = Nothing
DB.Close: Set DB = Nothing

End Sub

Gruß Konrad