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