Recordset.AddNew-Methode (DAO)
Gilt für: Access 2013, Office 2013
Erstellt einen neuen Datensatz für ein aktualisierbares Recordset-Objekt.
Syntax
expression .AddNew
Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.
Bemerkungen
Verwenden Sie die AddNew-Methode , um einen neuen Datensatz im Recordset-Objekt namens nach recordset zu erstellen und hinzuzufügen. Diese Methode legt die Felder auf Standardwerte fest, und wenn keine Standardwerte angegeben werden, legt sie die Felder auf Null fest (die Standardwerte, die für ein Recordset-Tabellentyp angegeben sind).
Verwenden Sie nach dem Ändern des neuen Datensatzes die Update -Methode, um die Änderungen zu speichern und den Datensatz zum Recordset hinzuzufügen. In der Datenbank treten Änderungen erst dann 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 Recordset-Objekt schließen oder die Prozedur beenden, die das Recordset oder sein 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. Wenn der neue Datensatz auf eine vorhandene Seite passt, ist Seitensperrung optimistisch.
Wenn Sie noch nicht zum letzten Datensatz Ihres Recordsets gesprungen sind, sind Datensätze, die von anderen Prozessen Basistabellen hinzugefügt werden, möglicherweise enthalten, wenn sie nach dem aktuellen Datensatz positioniert sind. Wenn Sie Ihrem eigenen Recordset einen Datensatz hinzufügen, wird der Datensatz allerdings im Recordset angezeigt und in die zugrunde liegende Tabelle eingeschlossen, wo er für alle neuen Recordset -Objekte sichtbar wird.
Die Position des neuen Datensatzes hängt vom Recordset -Typ ab:
In einem Recordset -Objekt vom dynaset-Typ werden Datensätze am Ende des Recordsets eingefügt, unabhängig von Sortier- oder Reihenfolgeregeln, die beim Öffnen des Recordsets wirksam waren.
In einem Tabellentyp- Recordset -Objekt, für das die Index -Eigenschaft festgelegt wurde, werden Datensätze am entsprechenden Platz in der Sortierreihenfolge zurückgegeben. Falls Sie die Index -Eigenschaft nicht festgelegt haben, werden neue Datensätze am Ende des Recordsets zurückgegeben.
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 Recordset
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 Recordset, _
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