Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Um eine Werteliste in einer Tabelle oder einer Abfrage anzuzeigen, werden häufig Kombinationsfelder verwendet. Indem Sie auf das NotInList-Ereignis reagieren, bieten Sie dem Benutzer die Möglichkeit, Werte hinzuzufügen, die nicht in der Liste enthalten sind.
Der Wert, der in einem Kombinationsfeld angezeigt wird, wird häufig aus einem Datensatz in einer verknüpften Tabelle nachgeschlagen. Da die Liste von einer Tabelle oder einer Abfrage abgeleitet ist, müssen Sie eine Möglichkeit bieten, wie der Benutzer einen neuen Datensatz in der zugrunde liegenden Tabelle eingeben kann. Anschließend können Sie die Requery-Methode verwenden, um die Liste erneut abzufragen, damit sie den neuen Wert enthält.
Wenn ein Benutzer einen Wert in ein Kombinationsfeld eingibt, das nicht in der Liste enthalten ist, tritt das NotInList-Ereignis des Kombinationsfelds auf, solange die LimitToList-Eigenschaft des Kombinationsfelds auf Ja festgelegt ist oder eine andere Spalte als die gebundene Spalte des Kombinationsfelds im Feld angezeigt wird. Sie können eine Ereignisprozedur für das NotInList-Ereignis schreiben, das dem Benutzer die Möglichkeit bietet, der Tabelle, die die Werte der Liste bereitstellt, einen neuen Datensatz hinzuzufügen. Die NotInList-Ereignisprozedur enthält ein Zeichenfolgenargument namens NewData , das Access verwendet, um den vom Benutzer eingegebenen Text an die Ereignisprozedur zu übergeben.
Die NotInList-Ereignisprozedur verfügt außerdem über das Argument Response, mit dem Sie Access mitteilen, wie nach Ausführung der Prozedur vorgegangen wird. Je nach Aktion in der Ereignisprozedur legen Sie das Argument Response auf einen der drei vordefinierten konstanten Werte fest:
Konstante | Beschreibung |
---|---|
acDataErrAdded | Falls der neue Wert in der Datenquelle für die Liste von der Ereignisprozedur eingegeben wird oder dem Benutzer dafür eine Möglichkeit geboten wird, legen Sie das Argument Response auf acDataErrAdded fest. Das Kombinationsfeld wird dann automatisch erneut abgefragt, wodurch der Liste der neue Wert hinzugefügt wird. |
acDataErrDisplay | Wenn Sie den neuen Wert nicht hinzufügen und access die Standardfehlermeldung anzeigen soll, legen Sie das Argument Response auf acDataErrDisplay fest. Der Benutzer wird dann von Access aufgefordert, einen gültigen Wert aus der Liste einzugeben. |
acDataErrContinue | Falls Sie in der Ereignisprozedur eine eigene Meldung anzeigen möchten, legen Sie das Argument Response auf acDataErrContinue fest. In Access wird nicht die Standardfehlermeldung angezeigt, sondern der Benutzer muss weiterhin einen Wert im Feld eingeben. Wenn Sie nicht möchten, dass der Benutzer einen vorhandenen Wert aus der Liste auswählt, können Sie Änderungen am Feld mithilfe der Undo-Methode rückgängig machen. |
So wird z. B. der Benutzer in der folgenden Ereignisprozedur gefragt, ob einer Liste ein Wert hinzugefügt werden soll, der Wert hinzugefügt und dann das Argument Response verwendet, um Access zur erneuten Abfrage der Liste aufzufordern:
Private Sub ShipperID_NotInList(NewData As String, Response As Integer)
Dim dbsOrders As DAO.Database
Dim rstShippers As DAO.Recordset
Dim intAnswer As Integer
On Error GoTo ErrorHandler
intAnswer = MsgBox("Add " & NewData & " to the list of shippers?", _
vbQuestion + vbYesNo)
If intAnswer = vbYes Then
' Add shipper stored in NewData argument to the Shippers table.
Set dbsOrders = CurrentDb
Set rstShippers = dbsOrders.OpenRecordset("Shippers")
rstShippers.AddNew
rstShippers!CompanyName = NewData
rstShippers.Update
Response = acDataErrAdded ' Requery the combo box list.
Else
Response = acDataErrDisplay ' Require the user to select
' an existing shipper.
End If
rstShippers.Close
dbsOrders.Close
Set rstShippers = Nothing
Set dbsOrders = Nothing
Exit Sub
ErrorHandler:
MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.