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
Un bloque de datos BuscarRegistro realiza un conjunto de acciones en un registro específico.
Nota:
El bloque de datos BuscarRegistro solo está disponible en macros de datos.
Configuración
La acción EstablecerCampo utiliza los siguientes argumentos.
Argumento |
Necesario |
Descripción |
|---|---|---|
En |
Sí |
Una cadena que identifica el registro en el que se operará. El argumento In puede contener el nombre de la tabla, una consulta select o una instrucción SQL. NOTA: El registro especificado no puede incluir datos almacenados en una tabla vinculada o un origen de datos ODBC. |
Condición WHERE |
No |
Una expresión de cadena que se utiliza para restringir el intervalo de datos en el que se ejecuta el bloque de datos BuscarRegistro. Por ejemplo, los criterios suelen ser equivalentes a la cláusula WHERE en una expresión SQL, sin la palabra WHERE. Si se omiten los criterios, el bloque de datos LookupRecord funciona en todo el dominio especificado por el argumento In . Cualquier campo que se incluya en los criterios debe ser también un campo del argumento En. |
Alias |
No |
Cadena que proporciona un nombre alternativo para el registro especificado por el argumento In . Se utiliza a menudo para acortar el nombre de la tabla en referencias posteriores con el fin de evitar posibles referencias ambiguas. Si no se especifica ningún Alias, se utilizará el nombre de la tabla o consulta como el alias. |
Comentarios
Si los criterios especificados por los argumentos In y Where Condition devuelven más de un registro, el bloque de datos LookupRecord solo funcionará en el primer registro. En el caso de que ningún registro coincida con los criterios especificados, Access omitirá el conjunto de acciones contenidas en el bloque LookupRecord , como si hubiera sido una expresión de bloque de macros If que se evaluó como false.
Ejemplo
En el ejemplo siguiente se muestra cómo usar la acción SetReturnVar para devolver un valor de una macro de datos con nombre. Un Valor ReturnVar denominado CurrentServiceRequest se devuelve a la macro o a la subrutina de Visual Basic para Aplicaciones (VBA) que llamó a la macro de datos con nombre.
Código de ejemplo proporcionado por la Referencia del programador de Microsoft Access 2010.
RunDataMacro
Macro Name tblServiceRequests.dmGetCurrentServiceRequest
Parameters
prmAssignedTo =[ID]
SetProperty
Control Name txtCurrentSR
Property Value
Value =[ReturnVars]![CurrentServiceRequest]
En el ejemplo siguiente se muestra cómo usar la acción RaiseError para cancelar el evento de macro de datos Antes de cambiar. Cuando se actualiza el campo AssignedTo, se usa un bloque de datos LookupRecord para determinar si el técnico asignado está asignado actualmente a una solicitud de servicio abierta. Si esto es true, se cancela el evento Antes de cambiar y el registro no se actualiza.
/* Get the name of the technician */
Look Up A Record In tblTechnicians
Where Condition =[tblTechnicians].[ID]=[tblServiceRequests].[AssignedTo]
SetLocalVar
Name TechName
Expression [tblTechnicians].[FirstName] & " " & [tblTechnicians].[LastName]
/* End LookUpRecord */
If Updated("AssignedTo") Then
Look Up A Record In tblServiceRequests
Where Condition SR.[AssignedTo]=tblServiceRequests[AssignedTo] And
SR.[ID]<>tblServiceRequests.[ID] And IsNull(SR.[ActualCompletionDate])
Alias SR
RaiseError
Error Number 1234
Error Description ="Cannot assign a request to the specified technician: " & [TechName]
End If