LookupRecord 数据块

适用于:Access 2013、Office 2013

LookupRecord 数据块可对特定记录执行一组操作。

备注

LookupRecord 数据块仅适用于数据宏。

设置

SetField 操作具有以下参数。

参数

必需

说明

一个用于标识要对其执行操作的记录的字符串。 In 参数可以包含表的名称、选择查询或 SQL 语句。

注意:指定的记录不能包括链接表或 ODBC 数据源中存储的数据。

Where Condition

一个字符串表达式,用于限制对其执行 LookupRecord 数据块的数据的范围。 例如,criteria 通常等效于表达式中不含 WHERE SQL WHERE 子句。 如果省略 criteria, LookupRecord 数据块将运行在 In 参数指定的整个域上。 条件中包括的所有字段还必须是 In 中的字段。

别名

为 In 参数指定的记录提供备用名称的字符串。 通常用于缩短后续引用的表名称,以防止可能出现的不明引用。 如果不指定 Alias,则会将表或查询名称用作别名。

备注

如果 In 和 Where Condition 参数指定的条件返回多条记录,LookupRecord 数据块将只对第一条记录进行操作。 如果记录与指定条件不匹配,Access 将跳过 LookupRecord 块中包含的一组操作,就像它是计算为 false 的 If 宏块表达式一样。

示例

以下示例演示如何使用 SetReturnVar 操作从命名数据宏返回值。 一个名为 CurrentServiceRequest 的 ReturnVar 将返回到调用命名数据宏Visual Basic for Applications (VBA) 一个子例程。

示例代码提供方:Microsoft Access 2010 程序员参考

    RunDataMacro
        Macro Name tblServiceRequests.dmGetCurrentServiceRequest
    
    Parameters
        prmAssignedTo =[ID]
    
    SetProperty
        Control Name txtCurrentSR
        Property Value
        Value =[ReturnVars]![CurrentServiceRequest]

下面的示例演示如何使用 RaiseError 操作取消 Before Change 数据宏事件。 当 AssignedTo 字段更新时,LookupRecord 数据块用于确定当前是否已将分配的技术人员分配给开放服务请求。 如果为 true,则"更改前"事件将被取消,并且不会更新记录。

    /* 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