Hallo liebe Gemeinde,
ich steh mal wieder aufm Schlauch bzw. verstehe doch noch zu wenig von der ganzen Materie.
Ich habe ein Kombinationsfeld, welches mir Strassennamen auflistet, welche sich in der Tabelle tblStrasse befinden. Grundlage des Formulars ist die Tabelle tblBaustellen. Für den Fall, daß der Strassenname noch nicht vorhanden ist, soll das NotinList-Ereignis eintreten mit folgendem Code:
Private Sub cboStrassenname_NotInList(NewData As String, Response As Integer)
Dim db As DAO.Database
Dim lngStrassenname As Long
Dim strMeldung As String
Dim bolAnlegen As Boolean
strMeldung = "'" & NewData & "' als neuen Strassenname anlegen?"
bolAnlegen = MsgBox(strMeldung, vbYesNo, "neuer Strassenname") = vbYes
If bolAnlegen = True Then
Set db = CurrentDb
db.Execute "INSERT INTO tblStrasse(Strassenname) VALUES('" & NewData & "')", dbFailOnError
lngID = db.OpenRecordset("SELECT @@IDENTITY").Fields(0)
Me!cboStrassenname.Undo
Me!cboStrassenname.Requery
Me!cboStrassenname = lngID
Set db = Nothing
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If
End Sub
Funktioniert auch soweit, allerdings wird anscheinend dabei das Kombinationsfeld aktualisiert (der neue Strassenname wird angezeigt) und somit die ebenfalls in der Tabelle tblBaustellen befindliche BaustellenID um 1 erhöht, so daß diese ID (AutoWert) immer Lücken aufweist.
Kann man das ändern? Fehlt hier was in Code? Was sagen die Spezialisten unter Euch dazu?
Ich hoffe ich konnte mein Problem verständlich rüberbringen, falls nicht bitte nachfragen statt schweigen.
Vielen Dank schon mal.
LG girly
Hallo,
lass alles weg, was nicht mit der Insert into- Anweisung zu tun hat, und alles ist gut....
Hallo,
genauer gesagt sind die folgenden Befehle überflüssig:
lngID = db.OpenRecordset("SELECT @@IDENTITY").Fields(0)
Me!cboStrassenname.Undo
Me!cboStrassenname.Requery
Me!cboStrassenname = lngID
Das acDataErrAdded sorgt ohne weiteres Dazutun für die Aktualisierung des Kombifeldes und die Auswahl des eingegebenen Wertes.
Hallo MaggieMay und DF6GL,
vielen Dank für Eure Hilfe. Genau diesen Teil des Code's habe ich auch nicht verstanden, wenn es ohne geht, umso besser. Werd ich heut abend ausprobieren!
LG Girly