In questo tutorial impareremo come aprire un Recordset, contare il numero di record nel Recordset, scorrere il Recordset, aggiungere un record, aggiornare un record, leggere un valore da un record ed eliminare un record.
Abbiamo una tabella di accesso, chiamata ProductsT mostrata di seguito:
Aprire un Recordset
Dobbiamo prima stabilire il database che intendiamo utilizzare, in questo caso è il database attualmente aperto. Possiamo quindi utilizzare il metodo CurrentDB.OpenRecordSet per aprire/creare il nostro Recordset.
Per creare un Recordset che ci permetta di manipolare i dati nella tabella denominata ProductsT, utilizzeremmo il seguente codice:
1 | CurrentDb.OpenRecordset ("ProdottiT") |
Conteggio del numero di record utilizzando VBA
Una volta creato un Recordset, molto probabilmente vorrai fare qualcosa di utile con esso o manipolare i dati in esso in qualche modo. Puoi contare il numero di record nel tuo set di dati (in questo caso la tabella denominata ProductsT) utilizzando il codice seguente:
1 | MsgBox CurrentDb.OpenRecordset("ProdottiT").RecordCount |
Loop attraverso un RecordSet usando VBA
Il seguente codice scorre attraverso il nostro RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetImposta il nostro database = CurrentDbImposta nostroRecordset = nostroDatabase.OpenRecordset("ProdottiT")Fai fino al nostroRecordset.EOFMsgBox ourRecordset!ProductIDourRecordset.MoveNextCiclo continuoFine sottotitolo |
Programmazione VBA | Il generatore di codice funziona per te!
Aggiungere un record a un RecordSet
Utilizzare il metodo Recordset.AddNew per aggiungere un nuovo record al RecordSet:
1234567891011121314 | Sub RecordSet_Add()Con CurrentDb.OpenRecordset("ProdottiT").Aggiungere nuova![ID prodotto] = 8![ProductName] = "Prodotto HHH"![ProductPricePerUnit] = 10![ProductCategory] = "Giocattoli"![UnitsInStock] = 15.AggiornareTermina conFine sottotitolo |
Il risultato è:
Aggiornare un Recordset
Devi usare il metodo Recordset.AddNew o Recordset.Edit. Dopo questa istruzione è necessario utilizzare il metodo Recordset.Update per mantenere le modifiche.
Lettura di valori da un record
Devi usare il metodo Recordset.FindFirst per creare un record, il record corrente. Devi quindi utilizzare Recordset.Fields per specificare quale campo guardare.
12345678910111213141516 | Sub RecordSet_ReadValue ()Oscura il nostro database come databaseDim ourRecordset As RecordsetImposta il nostro database = CurrentDbImposta ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset)Con il nostro Recordset.FindFirst "ProductName = " & "'Product CCC'"Se .Nomatch alloraMsgBox "Nessuna corrispondenza trovata"AltroMsgBox ourRecordset.Fields("CategoriaProdotto")Finisci seTermina conFine sottotitolo |
Il risultato è:
Stanco di cercare esempi di codice VBA? Prova AutoMacro!
Eliminare un record da un recordset
Per eliminare un record da un Recordset devi prima renderlo il record corrente utilizzando il metodo Recordset.FindFirst. È quindi possibile eliminarlo utilizzando il metodo Recordset.Delete. Il codice seguente mostra come eliminare il record 2 nel set di dati:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Oscura il nostro database come databaseDim ourRecordset As RecordsetImposta il nostro database = CurrentDbImposta ourRecordset = ourDatabase.OpenRecordset("ProductsT", Type:=RecordsetTypeEnum.dbOpenDynaset)Con il nostro Recordset.FindFirst "ProductName = " & "'Product BBB'"Se .Nomatch alloraMsgBox "Nessuna corrispondenza trovata"AltroourRecordset.EliminaFinisci seTermina con"Riaprire il tavolo"DoCmd.Close aTable, "ProdottiT"DoCmd.OpenTable "ProdottiT"Fine sottotitolo |
Il risultato è: