Compartilhar via


Eventos WillChangeRecord e RecordChangeComplete (ADO)

Aplica-se ao: Access 2013, Office 2013

O evento WillChangeRecord é chamado antes da alteração de um ou mais registros (linhas) no Recordset. O evento RecordChangeComplete é chamado depois da alteração de um ou mais registros.

Sintaxe

WillChangeRecordadReason, cRecords, adStatus, pRecordset

RecordChangeCompleteadReason, cRecords, pError, adStatus, pRecordset

Parâmetros

Parâmetro Descrição
adReason Um valor EventReasonEnum que especifica a razão para esse evento. Seu valor pode ser adRsnAddNew, adRsnDelete, adRsnUpdate, adRsnUndoUpdate, adRsnUndoAddNew, adRsnUndoDelete ou adRsnFirstChange.
cRegistos Um valor Long que indica o número de registros que foram alterados (afetados).
pError Um objeto Error. Descreve o erro ocorrido se o valor de adStatus for adStatusErrorsOccurred; caso contrário, não será definido.
adStatus EventStatusEnum. Quando WillChangeRecord é chamado, esse parâmetro é definido como adStatusOK se a operação que gerou o evento foi bem-sucedida. Ele será definido como adStatusCantDeny se esse evento não puder solicitar o cancelamento da operação pendente.

Quando RecordChangeComplete é chamado, esse parâmetro é definido como adStatusOK se a operação que gerou o evento foi bem-sucedida, ou como adStatusErrorsOccurred se a operação falhar.

Antes do retorno de WillChangeRecord, defina esse parâmetro como adStatusCancel, para solicitar o cancelamento da operação que gerou esse evento, ou como adStatusUnwantedEvent para evitar notificações subsequentes.

Antes do retorno de RecordChangeComplete, defina esse parâmetro como adStatusUnwantedEvent para evitar notificações subsequentes.
pRecordset Um objeto Recordset. O Recordset para o qual esse evento ocorreu.

Comentários

Um evento WillChangeRecord ou RecordChangeComplete pode ocorrer para o campo alterado em uma linha devido às seguintes operações de Recordset: Update, Delete, CancelUpdate, AddNew, UpdateBatch e CancelBatch. O valor do RecordsetCursorType determina quais operações geraram o evento.

Durante o evento WillChangeRecord, a propriedade Filter do Recordset é definida como adFilterAffectedRecords. Você não poderá alterar essa propriedade enquanto estiver processando o evento.

Você deve definir o parâmetro adStatus como adStatusUnwantedEvent para cada valor adReason possível, a fim de interromper totalmente as notificações de qualquer evento que inclua o parâmetro adReason.