Editando dados de um Recordset com ADO ?
Quando você queria editar um registro usando a DAO seguia os seguintes passos:
Abria o Recordset
Executava o método EDIT
Executava o método UPDATE
Dim db As DAO.Database Dim rst As DAO.Recordset
Set db = DAO.DBEngine.OpenDatabase(CaminhoBD,False, False) Set rst = db.OpenRecordset("Clientes")
rst.Edit rst!Nome = "Macoratti" rst.Update End Sub |
Ao usar a ADO você deve atentar para as seguintes mudanças :
O modo de abertura padrão de um recordset ADO é somente leitura , por isto , você vai ter que alterar o tipo de cursor e o tipo de bloqueio ( Lock Type ) permitindo a edição dos registros.
Não existe o método EDIT na ADO , para editar é só começar...
Você não precisar usar o método UPDATE , pois , ao mover-se para outro registro , a ADO atualizará seus registros automaticamente. Mas se você apenas sair sem executar o método UPDATE irá perder as alterações feitas.
Dim conn As ADODB.Connection Dim rst As ADODB.Recordset Set conn = New ADODB.Connection With conn .Provider = "Microsoft.Jet.OLEDB.4.0" .Mode = adModeReadWrite ' Permite Ler/Escrever. .ConnectionString = "data source=" & CaminhoBD .Open End With Set rst = New ADODB.Recordset rst.Open "Clientes", conn, adOpenKeyset, adLockOptimistic ' Observe que não existe o método EDIT rst!Nome = "Macoratti" ' Se você mover o ponteiro do registro o método UPDATE não é necessário rst.Update |
Até mais ...