Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: girly05 am Februar 23, 2016, 11:20:04

Titel: NotInListEreignis im Kombinationsfeld
Beitrag von: girly05 am Februar 23, 2016, 11:20:04
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
Titel: Re: NotInListEreignis im Kombinationsfeld
Beitrag von: DF6GL am Februar 23, 2016, 12:37:09
Hallo,

lass alles weg, was nicht mit der Insert into- Anweisung zu tun hat, und alles ist gut.... 
Titel: Re: NotInListEreignis im Kombinationsfeld
Beitrag von: MaggieMay am Februar 23, 2016, 12:49:46
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.
Titel: Re: NotInListEreignis im Kombinationsfeld
Beitrag von: girly05 am Februar 24, 2016, 13:49:15
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