Autowert aus Tabelle in andere Tabellen schreiben

Hallo Experten,

folgendes Problem (Access 2003, Dateiformat Access 2000):

Ich nutze ein Formular mit ungebundenen Textfeldern. Diese schreibe ich per VBA in dann in verschiedene Tabellen. Dies geschieht folgendermassen:

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sql as String

Set rs = CurrentDb.OpenRecordset(„dbo_Gerät“, dbOpenTable)

With rs
.AddNew
.Fields(„Geraetenummer“) = Me.Geraetenummer
.Fields(„GeraetenummerOptional“) = Me.GeraetenummerOptional
.Fields(„Status-ID“) = Me.Status
.Fields(„ZZ-Nr“) = Me.ZZ_Nr
.Fields(„Typ“) = Me.Typ
.Fields(„Hersteller“) = Me.Hersteller
.Fields(„Mono/Color“) = Me.Mono_Color
.Fields(„Aufbaudatum“) = Me.Aufbaudatum
.Fields(„Jahr“) = Me.Jahr
.Fields(„Quartal“) = Me.Quartal
.Update
End With

In der Tabelle dbo_Gerät wird nun Autowert vergeben, welcher dann auch der Primärschlüssel ist.
Mit der Variablen MerkID will ich die angelegte ID speichern.

Habe versucht nach dem .Update mit der Zeile

MerkID = .Fields(„Geraet-ID“)

den Autowert auszulesen, hat aber leider nicht geklappt.

Auch per SQL-String mit der DMax-Variante komme ich nicht weiter.

Wer kann mir hier ein wenig auf die Sprünge helfen, wie ich den Autowert in die anderen Tabellen bekomme, bzw ich den Autowert in meine Variable zum merken bekomme?

Vielen Dank schonmal.

Gruss

Tna

Hallo,

versuch einmal ihn direkt vor dem Update auszulesen.

MfG,

ujk

Hallo,

meinst du folgendermassen?

With rs
.AddNew
.Fields(„Geraetenummer“) = Me.Geraetenummer
.Fields(„GeraetenummerOptional“) = Me.GeraetenummerOptional
.Fields(„Status-ID“) = Me.Status
.Fields(„ZZ-Nr“) = Me.ZZ_Nr
.Fields(„Typ“) = Me.Typ
.Fields(„Hersteller“) = Me.Hersteller
.Fields(„Mono/Color“) = Me.Mono_Color
.Fields(„Aufbaudatum“) = Me.Aufbaudatum
.Fields(„Jahr“) = Me.Jahr
.Fields(„Quartal“) = Me.Quartal
sSql = „“
sSql = "select max(dbo_Gerät.[Geraete-ID]) from dbo_Gerät "
.Update
End With

Das führt leider auch zu keinem Ergebnis, der SQL-String bleibt leer, obwohl in der Tabelle eine ID erzeugt worden ist.

Hallo,

nein, sondern etwas so:

.Fields(„Quartal“) = Me.Quartal
lngGeraeteID= ![Geraete-ID]
.Update

(btw: Keine Leer- oder Sonderzeichen in Objektnamen vewenden!)

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

1 Like

Vielen Dank Franz,

hat einwandfrei funktioniert.

Gruss

Tna