Recordset2.Edit-Methode (DAO)
Gilt für: Access 2013, Office 2013
Kopiert den aktuellen Datensatz zur weiteren Bearbeitung aus einem aktualisierbaren Recordset-Objekt in den Kopierpuffer.
Syntax
Ausdruck .Edit
Ausdruck Eine Variable, die ein Recordset2-Objekt darstellt.
Hinweise
Wenn Sie die Edit-Methode verwenden, werden Änderungen, die an den Feldern des aktuellen Datensatzes vorgenommen werden, in den Kopierpuffer kopiert. Speichern Sie die Änderungen mithilfe der Update -Methode, nachdem Sie die gewünschten Änderungen an dem Datensatz vorgenommen haben.
Der aktuelle Datensatz bleibt nach der Verwendung von Edit aktuell.
Hinweis
Wenn Sie einen Datensatz bearbeiten und dann durch einen beliebigen Vorgang zu einem anderen Datensatz wechseln, ohne zuerst Update zu verwenden, gehen Ihre Änderungen ohne Warnung verloren. Der bearbeitete Datensatz wird außerdem ohne Warnung verworfen, wenn Sie den Recordset schließen oder die Prozedur beenden, die das Recordset- oder das übergeordnete Database- oder Connection-Objekt deklariert.
Die Verwendung von Edit erzeugt in folgenden Fällen einen Fehler:
Es ist kein aktueller Datensatz vorhanden.
Das Connection-, Database- oder Recordset-Objekt wurde schreibgeschützt geöffnet.
Der Datensatz enthält keine aktualisierbaren Felder.
Das Database- oder Recordset-Objekt wurde zur exklusiven Verwendung von einem anderen Benutzer geöffnet (Microsoft Access-Arbeitsbereich).
Ein anderer Benutzer hat die Seite mit Ihrem Datensatz gesperrt (Microsoft Access-Arbeitsbereich).
Wenn in einem Microsoft Access-Arbeitsbereich die LockEdits -Eigenschafteneinstellung des Recordset -Objekts in einer Mehrbenutzerumgebung auf True (pessimistisch gesperrt) festgelegt ist, bleibt der Datensatz ab dem Zeitpunkt der Verwendung von Edit bis zum Abschluss der Aktualisierung gesperrt. Wenn die LockEdits -Eigenschafteneinstellung auf False (optimistisch gesperrt) festgelegt ist, wird der Datensatz gesperrt und mit dem vorher bearbeiteten Datensatz verglichen, kurz bevor er in der Datenbank aktualisiert wird. Wenn der Datensatz seit der Verwendung der Edit-Methode geändert wurde, tritt beim Update-Vorgang ein Laufzeitfehler auf, falls Sie OpenRecordset ohne Angabe von dbSeeChanges verwenden. Standardmäßig verwenden mit dem Microsoft Access-Datenbankmodul verbundene ODBC- und installierbare ISAM-Datenbanken immer die optimistische Sperrung.
Hinweis
[!HINWEIS] Es muss ein eindeutiger Index für den Datensatz in der zugrunde liegenden Datenquelle vorhanden sein, damit ein Datensatz hinzugefügt, bearbeitet oder gelöscht werden kann. Andernfalls tritt im Aufruf der Methoden AddNew, Delete oder Edit in einem Microsoft Access-Arbeitsbereich ein Fehler vom Typ "Berechtigung verweigert" auf.
Beispiel
In diesem Beispiel wird die Edit-Methode verwendet, um die aktuellen Daten durch den angegebenen Namen zu ersetzen. Die EditName-Prozedur ist zum Ausführen dieser Prozedur erforderlich.
Sub EditX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset2
Dim strOldFirst As String
Dim strOldLast As String
Dim strFirstName As String
Dim strLastName As String
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
' Store original data.
strOldFirst = rstEmployees!FirstName
strOldLast = rstEmployees!LastName
' Get new data for record.
strFirstName = Trim(InputBox( _
"Enter first name:"))
strLastName = Trim(InputBox( _
"Enter last name:"))
' Proceed if the user entered something for both fields.
If strFirstName <> "" and strLastName <> "" Then
' Update record with new data.
EditName rstEmployees, strFirstName, strLastName
With rstEmployees
' Show old and new data.
Debug.Print "Old data: " & strOldFirst & _
" " & strOldLast
Debug.Print "New data: " & !FirstName & _
" " & !LastName
' Restore original data because this is a
' demonstration.
.Edit
!FirstName = strOldFirst
!LastName = strOldLast
.Update
End With
Else
Debug.Print _
"You must input a string for first and last name!"
End If
rstEmployees.Close
dbsNorthwind.Close
End Sub
Sub EditName(rstTemp As Recordset2, _
strFirst As String, strLast As String)
' Make changes to record and set the bookmark to keep
' the same record current.
With rstTemp
.Edit
!FirstName = strFirst
!LastName = strLast
.Update
.Bookmark = .LastModified
End With
End Sub