Compartilhar via


Método AddNew (ADO)

Aplica-se ao: Access 2013, Office 2013

Cria um novo registro para um objeto Recordset atualizável.

Sintaxe

conjunto de registros. AddNew FieldList, Values

Parâmetros

Parâmetro Descrição
recordset Um objeto Recordset.
FieldList Opcional. Um único nome, ou uma matriz de nomes ou posições ordinais dos campos no novo registro.
Valores Opcional. Um único valor, ou uma matriz de valores para os campos no novo registro. Se Fieldlist for uma matriz, Values também deverá ser uma matriz com o mesmo número de membros; caso contrário, ocorrerá erro. A ordem dos nomes de campo deve corresponder à ordem dos valores de campo em cada matriz.

Comentários

Use o método AddNew para criar e inicializar um novo registro. Use o método Supports com adAddNew (valor CursorOptionEnum) para verificar se é possível adicionar registros ao objeto Recordset atual.

Depois que você chamar o método AddNew, o novo registro passará a ser o registro atual e permanecerá atual depois que o método Update for chamado. Como o novo registro é acrescentado a Recordset, uma chamada para MoveNext após Update ultrapassará o fim de Recordset, tornando EOF True. Se o objeto Recordset não oferecer suporte a indicadores, você não poderá acessar o novo registro ao passar para outro. Dependendo do tipo de cursor, talvez seja necessário chamar o método Requery para tornar o novo registro acessível.

Se você chamar AddNew durante a edição do registro atual ou a adição de um novo registro, o ADO chamará o método Update para salvar as alterações e, em seguida, criará o novo registro.

O comportamento do método AddNew depende do modo de atualização do objeto Recordset e se serão passados os argumentos Fieldlist e Values.

No modo de atualização imediato (em que o provedor grava as alterações na fonte de dados subjacente quando você chama o método Update), se você chamar o método AddNew sem argumentos, a propriedade EditMode será definida como adEditAdd (valor EditModeEnum). O provedor armazena localmente em cache qualquer alteração de valor de campo. A chamada do método Update posta o novo registro no banco de dados e redefine a propriedade EditMode como adEditNone (valor EditModeEnum). Se você passar os argumentos Fieldlist e Values, o ADO postará o novo registro imediatamente no banco de dados (nenhuma chamada de Update é necessária); o valor da propriedade EditMode não é alterado (adEditNone).

No modo de atualização em lotes (em que o provedor armazena em cache várias alterações, gravando-as na fonte de dados subjacente somente quando o método UpdateBatch é chamado), se você chamar o método AddNew sem argumentos, definirá a propriedade EditMode como adEditAdd. O provedor armazena localmente em cache qualquer alteração de valor de campo. A chamada do método Update adiciona o novo registro ao Recordset atual e redefine a propriedade EditMode como adEditNone, entretanto, o provedor não postará as alterações no banco de dados subjacente até que o método UpdateBatch seja chamado. Se você passar os argumentos Fieldlist e Values, o ADO enviará o novo registro para que o provedor o armazene em um cache; você precisará chamar o método UpdateBatch para postar o novo registro no banco de dados subjacente.