Freigeben über


Recordset2.AddNew-Methode (DAO)

Gilt für: Access 2013, Office 2013

Erstellt einen neuen Datensatz für ein aktualisierbares Recordset2-Objekt.

Syntax

expression .AddNew

Ausdruck Eine Variable, die ein Recordset2-Objekt darstellt.

Hinweise

Use the AddNew method to create and add a new record in the Recordset2 object named by recordset. This method sets the fields to default values, and if no default values are specified, it sets the fields to Null (the default values specified for a table-type Recordset2).

Mit der Update -Methode können Sie nach dem Ändern des neuen Datensatzes die Änderungen speichern und den Datensatz zum Recordset2 hinzufügen. Es treten erst dann Änderungen in der Datenbank auf, wenn Sie die Update-Methode verwenden.

Hinweis

[!HINWEIS] Wenn Sie eine AddNew-Methode aufrufen und dann durch einen beliebigen Vorgang zu einem anderen Datensatz wechseln, ohne Update zu verwenden, gehen Ihre Änderungen ohne Warnung verloren. Wenn Sie außerdem das Recordset2 schließen oder die Prozedur beenden, die das Recordset2 oder dessen Database -Objekt deklariert, wird der neue Datensatz ohne Warnung verworfen.

Hinweis

[!HINWEIS] Wenn Sie AddNew in einem Microsoft Access-Arbeitsbereich verwenden und das Datenbankmodul eine neue Seite für den aktuellen Datensatz erstellen muss, ist die Seitensperre pessimistisch. Passt der neue Datensatz hingegen auf eine vorhandene Seite, ist die Seitensperre optimistisch.

Wenn Sie noch nicht zum letzten Datensatz des Recordset2-Objekts gewechselt sind, werden Datensätze, die durch andere Prozesse zu Basistabellen hinzugefügt wurden, möglicherweise einbezogen, wenn sie hinter dem aktuellen Datensatz liegen. Wenn Sie einen Datensatz zu Ihrem eigenen Recordset2 hinzufügen, ist er im Recordset2 sichtbar und wird in die zugrunde liegende Tabelle einbezogen, in der er für neue Recordset2-Objekte sichtbar wird.

Die Position des neuen Datensatzes hängt vom Typ des Recordset2-Objekts ab:

  • In a dynaset-type Recordset2 object, records are inserted at the end of the Recordset, regardless of any sorting or ordering rules that were in effect when the Recordset was opened.

  • In a table-type Recordset2 object whose Index property has been set, records are returned in their proper place in the sort order. If you haven't set the Index property, new records are returned at the end of the Recordset.

Der Datensatz, der vor dem Verwenden von AddNew aktuell war, bleibt der aktuelle Datensatz. Wenn Sie den neuen Datensatz zum aktuellen Datensatz machen möchten, können Sie die Bookmark -Eigenschaft auf das durch die LastModified -Eigenschaft identifizierte Lesezeichen festlegen.

Hinweis

[!HINWEIS] Es muss ein eindeutiger Index für den Datensatz in der zugrunde liegenden Datenquelle vorhanden sein, damit der Datensatz hinzugefügt, bearbeitet oder gelöscht werden kann. Andernfalls tritt ein "Berechtigung verweigert"-Fehler im AddNew-, Delete- oder Edit-Methodenaufruf in einem Microsoft Access-Arbeitsbereich auf.

Beispiel

This example uses the AddNew method to create a new record with the specified name. The AddName function is required for this procedure to run.

    Sub AddNewX() 
     
     Dim dbsNorthwind As Database 
     Dim rstEmployees As Recordset2 
     Dim strFirstName As String 
     Dim strLastName As String 
     
     Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     Set rstEmployees = _ 
     dbsNorthwind.OpenRecordset("Employees", dbOpenDynaset) 
     
     ' Get data from the user. 
     strFirstName = Trim(InputBox( _ 
     "Enter first name:")) 
     strLastName = Trim(InputBox( _ 
     "Enter last name:")) 
     
     ' Proceed only if the user actually entered something 
     ' for both the first and last names. 
     If strFirstName <> "" and strLastName <> "" Then 
     
     ' Call the function that adds the record. 
     AddName rstEmployees, strFirstName, strLastName 
     
     ' Show the newly added data. 
     With rstEmployees 
     Debug.Print "New record: " & !FirstName & _ 
     " " & !LastName 
     ' Delete new record because this is a demonstration. 
     .Delete 
     End With 
     
     Else 
     Debug.Print _ 
     "You must input a string for first and last name!" 
     End If 
     
     rstEmployees.Close 
     dbsNorthwind.Close 
     
    End Sub 
     
    Function AddName(rstTemp As Recordset2, _ 
     strFirst As String, strLast As String) 
     
     ' Adds a new record to a recordset using the data passed 
     ' by the calling procedure. The new record is then made 
     ' the current record. 
     With rstTemp 
     .AddNew 
     !FirstName = strFirst 
     !LastName = strLast 
     .Update 
     .Bookmark = .LastModified 
     End With 
     
    End Function