Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: sardus am Mai 10, 2019, 14:53:25

Titel: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: sardus am Mai 10, 2019, 14:53:25
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
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: DF6GL am Mai 10, 2019, 16:00:33
Hallo,

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

Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: sardus am Mai 10, 2019, 16:30:01
Danke für die schnelle Reaktion.

Leider trifft das nicht zu.
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: DF6GL am Mai 10, 2019, 19:46:28
Hallo,


dann erklär die ganze Geschichte mal umfassend und genauer.....
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: sardus am Mai 13, 2019, 10:10:41
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
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: Beaker s.a. am Mai 13, 2019, 16:00:33
@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
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: DF6GL am Mai 13, 2019, 16:29:17
Hallo,

und die nächste Frage ist, welchen Datentyp das [User ID]-Feld in der Tabelle Export besitzt....
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: sardus am Mai 14, 2019, 13:22:57
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
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: DF6GL am Mai 14, 2019, 14:58:03
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.
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: sardus am Mai 15, 2019, 07:19:49
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
Titel: Re: Anfügeabfrage: Neue Datensätze automatisch mit nächster ID anfügen
Beitrag von: DF6GL am Mai 15, 2019, 11:23:11
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