Freigeben über


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