Compartir a través de


Después de actualizar (evento de macro)

Se aplica a: Access 2013, Office 2013

El evento Después de actualizar se produce después de actualizar un registro.

Nota:

El evento Después de actualizar solo está disponible en macros de datos.

Comentarios

Utilice el evento Después de actualizar para realizar cualquier acción que desee que se produzca cuando se cambia un registro. Después de actualizar 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 
 

Puede obtener acceso al valor anterior de un campo mediante la sintaxis siguiente.

[Old].[Field Name]

Por ejemplo, para tener acceso al valor anterior del campo QuantityInStock, utilice la sintaxis siguiente.

[Old].[QuantityInStock]

Los valores anteriores se eliminan permanentemente cuando finaliza el evento Después de actualizar.

La siguiente tabla enumera los comandos de macro que pueden utilizarse en el evento Después de actualizar.

Tipo de comando

Comando

Flujo de programas

Comentario (instrucción de macro)

Flujo de programas

Grupo (instrucción de macro)

Flujo de programas

If...Then...Else (bloque de macro)

Bloque de datos

CrearRegistro (acción de macro)

Bloque de datos

EditarRegistro (acción de macro)

Bloque de datos

ParaCadaRegistro (acción de macro)

Bloque de datos

BuscarRegistro (bloque de datos)

Acción de datos

CancelarCambioDeRegistro (acción de macro)

Acción de datos

BorrarErrorDeMacro (acción de macro)

Acción de datos

EliminarRegistro (acción de macro)

Acción de datos

SalirDeCadaRegistro (acción de macro)

Acción de datos

RegistrarEvento (acción de macro)

Acción de datos

AlOcurrirError (acción de macro)

Acción de datos

ProvocarError (acción de macro)

Acción de datos

EjecutarMacroDeDatos (acción de macro)

Acción de datos

EnviarCorreoElectrónico (acción de macro)

Acción de datos

EstablecerCampo (acción de macro)

Acción de datos

EstablecerVariableLocal (acción de macro)

Acción de datos

DetenerTodasMacros (acción de macro)

Acción de datos

DetenerMacro (acción de macro)

Para crear una macro de datos que capture el evento Después de actualizar, utilice los pasos siguientes.

  1. Abra la tabla en la que desee capturar el evento Después de actualizar.

  2. En la ficha Tabla, en el grupo Eventos posteriores, haga clic en Después de actualizar.

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 actualizar para ejecutar una macro de datos con nombre que agrega un registro a la tabla Comentario cada vez que se actualiza el estado de un problema.

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.

  1. Abra la tabla en la que desee capturar el evento Después de actualizar.

  2. En la ficha Tabla, en el grupo Eventos posteriores, haga clic en Después de actualizar.

  3. Seleccione el código en el siguiente ejemplo de código y, a continuación, presione CTRL+C para copiarlo al Portapapeles.

  4. Active la ventana del Diseñador de macros y, a continuación, presione CTRL+V.

    <DataMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/04/application"> 
      <DataMacro Event="AfterUpdate"> 
        <Statements> 
          <ConditionalBlock> 
            <If> 
              <Condition>Updated("Status")</Condition> 
              <Statements> 
                <Action Name="RunDataMacro"> 
                  <Argument Name="MacroName">Comments.AddComment</Argument> 
                  <Parameters> 
                    <Parameter Name="prmRelatedID" Value="[ID]" /> 
                    <Parameter Name="prmComment" Value="&quot;-- Status changed to &quot; &amp; [Status]" /> 
                    <Parameter Name="prmUserID" Value="[UserID]" /> 
                  </Parameters> 
                </Action> 
              </Statements> 
            </If> 
          </ConditionalBlock> 
          <ConditionalBlock> 
            <If> 
              <Condition>Updated("Resolution")</Condition> 
              <Statements> 
                <Action Name="RunDataMacro"> 
                  <Argument Name="MacroName">Comments.AddComment</Argument> 
                  <Parameters> 
                    <Parameter Name="prmRelatedID" Value="[ID]" /> 
                    <Parameter Name="prmUserID" Value="[UserID]" /> 
                    <Parameter Name="prmComment" Value="&quot;-- Issue resolved as &quot; &amp; [Resolution]" /> 
                  </Parameters> 
                </Action> 
              </Statements> 
            </If> 
          </ConditionalBlock> 
        </Statements> 
      </DataMacro> 
    </DataMacros>
If  Updated("Status")   Then 
     RunDataMacro 
        Macro Name   Comments.AddComment 
     Parameters 
       prmRelatedID   = [ID] 
         prmComment   ="--Status Changes to "&[Status] 
          prmUserID   =[ChangedByUserID] 
End If 
 
If   Updated("Resolution")   Then 
     RunDataMacro 
        Macro Name   Comments.AddComment 
     Parameters 
       prmRelatedID   = [ID] 
          prmUserID   =[ChangedByUserID] 
         prmComment   ="--Issue Resolved as "&[Status] 
End If