In diesem Tutorial erfahren Sie, wie Sie ein Recordset öffnen, die Anzahl der Datensätze im Recordset zählen, das Recordset durchlaufen, einen Datensatz hinzufügen, einen Datensatz aktualisieren, einen Wert aus einem Datensatz lesen und einen Datensatz löschen.
Wir haben eine Zugriffstabelle namens ProductsT, die unten gezeigt wird:
Öffnen eines Recordsets
Wir müssen zuerst die Datenbank einrichten, die wir verwenden möchten, in diesem Fall ist es die aktuell geöffnete Datenbank. Wir können dann die CurrentDB.OpenRecordSet-Methode verwenden, um unser Recordset zu öffnen/erstellen.
Um ein Recordset zu erstellen, mit dem wir die Daten in der Tabelle ProductsT bearbeiten können, verwenden wir den folgenden Code:
1 | CurrentDb.OpenRecordset ("ProdukteT") |
Zählen der Anzahl der Datensätze mit VBA
Sobald Sie ein Recordset erstellt haben, möchten Sie wahrscheinlich etwas Nützliches damit machen oder die darin enthaltenen Daten auf irgendeine Weise manipulieren. Sie können die Anzahl der Datensätze in Ihrem Dataset (in diesem Fall die Tabelle namens ProductsT) mit dem folgenden Code zählen:
1 | MsgBox CurrentDb.OpenRecordset("ProductsT").RecordCount |
Durchlaufen eines RecordSets mit VBA
Der folgende Code durchläuft unser RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetSetzen Sie unsereDatenbank = CurrentDbSetze ourRecordset = ourDatabase.OpenRecordset("ProductsT")Machen Sie bis zu unseremRecordset.EOFMsgBox ourRecordset!ProductIDourRecordset.MoveNextSchleifeEnd Sub |
VBA-Programmierung | Code Generator arbeitet für Sie!
Hinzufügen eines Datensatzes zu einem RecordSet
Verwenden Sie die Recordset.AddNew-Methode, um dem RecordSet einen neuen Datensatz hinzuzufügen:
1234567891011121314 | Unter RecordSet_Add()Mit CurrentDb.OpenRecordset("ProductsT").Neue hinzufügen![ProduktID] = 8![ProductName] = "Produkt HHH"![ProduktPreisPerEinheit] = 10![ProductCategory] = "Spielzeug"![EinheitenInStock] = 15.AktualisierenEnde mitEnd Sub |
Das Ergebnis ist:
Aktualisieren eines Recordsets
Sie müssen die Methode Recordset.AddNew oder Recordset.Edit verwenden. Nach dieser Anweisung müssen Sie die Methode Recordset.Update verwenden, um die Änderungen beizubehalten.
Lesen von Werten aus einem Datensatz
Sie müssen die Recordset.FindFirst-Methode verwenden, um einen Datensatz, den aktuellen Datensatz, zu erstellen. Sie müssen dann Recordset.Fields verwenden, um anzugeben, welches Feld angezeigt werden soll.
12345678910111213141516 | Unter RecordSet_ReadValue ()Dim ourDatabase As DatabaseDimmen Sie unser Recordset als RecordsetSetzen Sie unsereDatenbank = CurrentDbSet ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset)Mit unserem Recordset.FindFirst "ProductName = " & "'Product CCC'"Wenn .NoMatch ThenMsgBox "Keine Übereinstimmung gefunden"AndersMsgBox ourRecordset.Fields("ProductCategory")Ende WennEnde mitEnd Sub |
Das Ergebnis ist:
Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!
Löschen eines Datensatzes aus einem Recordset
Um einen Datensatz aus einem Recordset zu löschen, müssen Sie ihn zuerst mit der Methode Recordset.FindFirst zum aktuellen Datensatz machen. Sie können es dann mit der Recordset.Delete-Methode löschen. Der folgende Code zeigt, wie Sie Datensatz 2 im Datensatz löschen:
1234567891011121314151617181920212223 | Unter RecordSet_DeleteRecord ()Dim ourDatabase As DatabaseDimmen Sie unser Recordset als RecordsetSetzen Sie unsereDatenbank = CurrentDbSet ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset)Mit unserem Recordset.FindFirst "ProductName = " & "'Produkt BBB'"Wenn .NoMatch ThenMsgBox "Keine Übereinstimmung gefunden"AndersourRecordset.DeleteEnde WennEnde mit'Tabelle wieder öffnenDoCmd.Close acTable, "ProductsT"DoCmd.OpenTable "ProdukteT"End Sub |
Das Ergebnis ist: