Neste tutorial, aprenderemos como abrir um Recordset, contar o número de registros no Recordset, percorrer o Recordset, adicionar um registro, atualizar um registro, ler um valor de um registro e excluir um registro.
Temos uma Tabela de Acesso, chamada ProductsT, mostrada a seguir:
Abrindo um conjunto de registros
Precisamos primeiro estabelecer o banco de dados que pretendemos usar, neste caso, é o banco de dados aberto no momento. Podemos então usar o método CurrentDB.OpenRecordSet para abrir / criar nosso conjunto de registros.
Para criar um Recordset que nos permitirá manipular os dados da tabela chamada ProductsT, usaríamos o seguinte código:
1 | CurrentDb.OpenRecordset ("ProductsT") |
Contando o número de registros usando VBA
Depois de criar um conjunto de registros, é mais do que provável que você queira fazer algo útil com ele ou manipular os dados nele de alguma forma. Você pode contar o número de registros em seu conjunto de dados (neste caso, a tabela chamada ProductsT) usando o seguinte código:
1 | MsgBox CurrentDb.OpenRecordset ("ProductsT"). RecordCount |
Loop por meio de um RecordSet usando VBA
O código a seguir percorre nosso RecordSet:
1234567891011121314 | Sub RecordSet_Loop ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetDefina ourDatabase = CurrentDbDefina ourRecordset = ourDatabase.OpenRecordset ("ProductsT")Faça até o nossoRecordset.EOFMsgBox ourRecordset! ProductIDourRecordset.MoveNextCicloEnd Sub |
Adicionar um registro a um RecordSet
Use o método Recordset.AddNew para adicionar um novo registro ao RecordSet:
1234567891011121314 | Sub RecordSet_Add ()Com CurrentDb.OpenRecordset ("ProductsT").Adicionar novo! [ProductID] = 8! [ProductName] = "Produto HHH"! [ProductPricePerUnit] = 10! [ProductCategory] = "Brinquedos"! [UnitsInStock] = 15.AtualizarTerminar comEnd Sub |
O resultado é:
Atualizando um conjunto de registros
Você deve usar o método Recordset.AddNew ou Recordset.Edit. Após esta instrução, você deve usar o método Recordset.Update para manter as alterações.
Lendo valores de um registro
Você tem que usar o método Recordset.FindFirst para fazer um registro, o registro atual. Em seguida, você deve usar Recordset.Fields para especificar qual campo examinar.
12345678910111213141516 | Sub RecordSet_ReadValue ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetDefina ourDatabase = CurrentDbDefina ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Com nosso conjunto de registros.FindFirst "ProductName =" & "'Produto CCC'"Se .NoMatch entãoMsgBox "Nenhuma correspondência encontrada"OutroMsgBox ourRecordset.Fields ("ProductCategory")Fim seTerminar comEnd Sub |
O resultado é:
Exclusão de um registro de um conjunto de registros
Para excluir um registro de um conjunto de registros, você deve primeiro torná-lo o registro atual usando o método Recordset.FindFirst. Você pode então excluí-lo usando o método Recordset.Delete. O código a seguir mostra como excluir o registro 2 no conjunto de dados:
1234567891011121314151617181920212223 | Sub RecordSet_DeleteRecord ()Dim ourDatabase As DatabaseDim ourRecordset As RecordsetDefina ourDatabase = CurrentDbDefina ourRecordset = ourDatabase.OpenRecordset ("ProductsT", Type: = RecordsetTypeEnum.dbOpenDynaset)Com nosso conjunto de registros.FindFirst "ProductName =" & "'Produto BBB'"Se .NoMatch entãoMsgBox "Nenhuma correspondência encontrada"OutroourRecordset.DeleteFim seTerminar com'Reabrir mesaDoCmd.Close acTable, "ProductsT"DoCmd.OpenTable "ProductsT"End Sub |
O resultado é: