Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen

Begonnen von sardus, Mai 10, 2019, 14:53:25

⏪ vorheriges - nächstes ⏩

sardus

Guten Tag,

ich würde mich über ein wenig Hilfestellung von Euch freuen.
Die Lösung sollte möglichst ohne Programmierung (VBA,..) funktionieren.

Ich versuche aktuell an eine bestehende Liste (Export System) welche ein Feld ID hat neue Einträge anzufügen. Grundsätzlich eine einfache Sache.
Das ID Feld der bestehenden Datensätze ist fix und kann nicht geändert werden.
Die neuen Einträge sollen nun, ausgehend von der Max(ID) automatisch Ihre ID erhalten.
z.B. Die letzte ID aus dem Export ist die 199. Ich möchte 2 neue Einträge anfügen. Der erste angefügte Datensatz bekommt die ID 200 der zweite angefügte Datensatz bekommt die ID 201 usw.

Ich hatte mir jetzt die MAX ID aus dem Export in eine Tabelle geschrieben und gehofft ich kann diese in der Anfügeabfrage nutzen um das beim anfügen direkt zu lösen.

Habt Ihr da evtl. einen Ansatz ?

Vielen Dank

DF6GL

Hallo,

sofern das ID-Feld der Tabelle "bestehende Liste" vom Datentyp inkrementeller Autowert ist, geht das automatisch und ohne weiteres Zutun.


sardus

Danke für die schnelle Reaktion.

Leider trifft das nicht zu.


sardus

Hi,
gerne beschreibe ich es etwas genauer.
Ich habe zwei Tabellen. Die eine kommt als Export aus dem System und enthält pro Eintrag ein ID (User). Die zweite Tabelle beinhaltet die neuen User.
Die neuen User sollen an den Export angefügt werden und am ende wieder in das System eingelesen.
Die beiden Tabellen haben die selbe Struktur somit ist das anfügen einfach. Die zweite Tabelle hat aber keine ID. Diese ID muss ich vergeben und würde dies gerne automatisch machen. Die ID soll fortlaufend sein. Als Basis dafür soll die letzte (Max) ID aus dem Export dienen. Ist die letzte ID aus dem Export eine 5 dann sollen die 3 neuen Einträge die ID`s 6,7 und 8 bekommen.

Siehe Anhang

Vielen Dank schonmal

Beaker s.a.

@sardus
Das mit der Nummerierung lässt sich mit einer Zahlentabelle (1 - n)
realisieren.
Es bleibt aber die Frage, wie du ohne ID in der Quelle feststellen willst,
ob der Eintrag neu ist. Oder sind das immer nur neue?
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,

und die nächste Frage ist, welchen Datentyp das [User ID]-Feld in der Tabelle Export besitzt....

sardus

Hallo Beaker s.a.,

du scheinst schon eine genaue Vorstellung für eine Lösung zu haben.
Wie wäre die Lösung mit der Zahlentabelle ? In der Quelle sind nur neue (die habe ich schon vorher auf anderem Wege ermittelt). Es geht nur um das anfügen der neuen welche noch keine ID haben. Anfügen an die Liste der bestehenden Einträge die schon eine ID haben.

Hallo DF6GL,
der Felddatentyp ist aktuell  "Kurzer Text" könnte ich aber anpassen für eine evtl. Lösung.

Danke Euch

DF6GL

Hallo,

wenn das Feld in "Autowert" geändert würde, löste sich das Problem von alleine..

Dazu muss aber:

-ein neues Tabellenfeld ("UserID") mit Datentyp Autowert angelegt,
-das Feld "User ID" gelöscht,
-das Autowert-Feld "UserID"  am besten so mit diesem Namen belassen werden

Irgendwo muss das Feld "User ID" durch irgendwas mit Werten gefüllt worden sein.  Diese Funktion muss entfernt werden.

sardus

Hallo DF6GL,

Die ID welche im Feld mit Autowert erscheinen muss ist aber durch den Export für die bestehenden schon vorgegeben (ich kann nicht bei 1 anfangen). Und die neuen die angefügt werden sollen dann die nächste freie Nummer bekommen.
Wenn das mit dem Autowert so möglich ist würde ich ein wenig damit experimentieren.

Danke

DF6GL

Hallo,

Zitatist aber durch den Export für die bestehenden schon vorgegeben

wird diese Tabelle immer wieder importiert?


und, wie schon gefragt,  sind in Tabelle Stammdaten immer nur neue User zu finden?




Quick&dirty:

ZitatSub test2()

Dim rs As DAO.Recordset, lngMax As Long, i As Long, db As Dao.Database
set db=Currentdb
lngMax = DMax("val([user id])", "Export")

Set rs = db.OpenRecordset("select * from Stammdaten", dbOpenSnapshot)
i = lngMax
Do Until rs.EOF
i = i + 1
db.Execute "Insert into Export ([User id], Info1, Info2, Info3 ) Values  ('" & CStr(i) & "' ,'" & rs!Info1 & "' ,'" & rs!Info2 & "' ,'" & rs!Info3 & "' )", dbFailOnError

rs.MoveNext
Loop

rs.Close: Set rs = Nothing
Set db=Nothing

End Sub