Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: Access 2013, Office 2013
El evento Después de insertar se produce después de agregar un registro.
Nota:
El evento Después de insertar solo está disponible en macros de datos.
Comentarios
Utilice el evento Después de insertar para realizar cualquier acción que desee que se produzca cuando se agrega un registro a una tabla. Después de insertar se suele utilizar para exigir reglas de negocio, flujos de trabajo, actualizar un total agregado y enviar notificaciones.
Puede utilizar la función Updated("Nombre del campo") para determinar si un campo ha cambiado. En el ejemplo de código siguiente se muestra cómo utilizar una instrucción If para determinar si se ha cambiado el campo PaidInFull.
If Updated("PaidInFull") Then
/* Perform actions based on changes to the field. */
End If
La siguiente tabla enumera los comandos de macro que pueden utilizarse en el evento Después de insertar.
Tipo de comando |
Comando |
|---|---|
Flujo de programas |
|
Flujo de programas |
|
Flujo de programas |
|
Bloque de datos |
|
Bloque de datos |
|
Bloque de datos |
|
Bloque de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
|
Acción de datos |
Para crear una macro de datos que capture el evento Después de insertar, utilice los pasos siguientes.
Abra la tabla en la que desee capturar el evento Después de insertar.
En la ficha Tabla, en el grupo Eventos posteriores, haga clic en Después de insertar.
Una macro de datos vacía se muestra en el Diseñador de macros.
Ejemplo
En el ejemplo de código siguiente se utiliza el evento Después de insertar para realizar algún procesamiento cuando se agrega un registro de la tabla Donativos. Cuando se agrega un registro, la cantidad del donativo se suma al campo DonativosRecibidos de la tabla Campañas y al campo TotalDonado de la tabla Donantes.
Haga clic aquí para ver una copia de la macro que puede pegar en el Diseñador de macros.
Para ver este ejemplo en el Diseñador de macros, utilice los pasos siguientes.
Abra la tabla en la que desee capturar el evento Después de insertar.
En la ficha Tabla, en el grupo Eventos posteriores, haga clic en Después de insertar.
Seleccione el código en el siguiente ejemplo de código y, a continuación, presione CTRL+C para copiarlo al Portapapeles.
Active la ventana del Diseñador de macros y, a continuación, presione CTRL+V.
<DataMacros>
<DataMacro Event="AfterInsert">
<Statements>
<Comment>This data macro increments the DonationsReceived field in Campaigns and theAmountCollected field in Pledges </Comment>
<Action Name="SetLocalVar">
<Argument Name="Name">varAmount</Argument>
<Argument Name="Value">[Amount]</Argument>
</Action>
<ConditionalBlock>
<If>
<Condition>Not (IsNull([CampaignID]))</Condition>
<Statements>
<ForEachRecord>
<Data>
<Reference>Campaigns</Reference>
<WhereCondition>[ID]=[Donations].[CampaignID]</WhereCondition>
</Data>
<Statements>
<EditRecord>
<Data />
<Statements>
<Action Name="SetField">
<Argument Name="Field">[DonationsReceived]</Argument>
<Argument Name="Value">[DonationsReceived]+[varAmount]</Argument>
</Action>
</Statements>
</EditRecord>
</Statements>
</ForEachRecord>
</Statements>
</If>
</ConditionalBlock>
<ConditionalBlock>
<If>
<Condition>Not (IsNull([DonorID]))</Condition>
<Statements>
<ForEachRecord>
<Data>
<Reference>Donors</Reference>
<WhereCondition>[ID]=[Donations].[DonorID]</WhereCondition>
</Data>
<Statements>
<EditRecord>
<Data />
<Statements>
<Action Name="SetField">
<Argument Name="Field">[TotalDonated]</Argument>
<Argument Name="Value">[TotalDonated]+[varAmount]</Argument>
</Action>
</Statements>
</EditRecord>
</Statements>
</ForEachRecord>
</Statements>
</If>
</ConditionalBlock>
</Statements>
</DataMacro>
</DataMacros>
SetLocalVar
Name varAmount
Expression =[Amount]
If Not (IsNull([CampaignID])) Then
For Each Record In Campaigns
Where Condition =[ID]=[Donations].[CampaignID]
Alias
EditRecord
Alias
SetField
Name [DonationsReceived]
Value =[DonationsReceived]+[varAmount]
End EditRecord
End If
If Not (IsNull([DonorID])) Then
For Each Record In Donors
WhereCondition =[ID]=[Donations].[DonorID]
Alias
EditRecord
Alias
SetField
Name [TotalDonated]
Value =[TotalDonated]+[varAmount]
End EditRecord
End If