Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se ao: Access 2013, Office 2013
Um bloco de dados PesquisarRegistro executa um conjunto de ações em um registro específico.
Observação
O bloco de dados PesquisarRegistro está disponível somente em Macros de Dados.
Configuração
A ação PesquisarRegistro tem os seguintes argumentos.
Argumento |
Obrigatório |
Descrição |
|---|---|---|
Em |
Sim |
Uma cadeia de caracteres que identifica o registro a ser utilizado. O argumento Em pode conter o nome da tabela, uma consulta selecionar ou uma instrução SQL. NOTA: o registo especificado não pode incluir dados armazenados numa tabela ligada ou origem de dados ODBC. |
Condição Where |
Não |
Uma expressão de cadeia de caracteres usada para restringir o intervalo de dados no qual o bloco de dados PesquisarRegistro opera. Por exemplo, os critérios são muitas vezes equivalentes à cláusula WHERE numa expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, o bloco de dados LookupRecord funciona em todo o domínio especificado pelo argumento In . Qualquer campo incluído nos critérios também deve ser um campo em Em. |
Alias |
Não |
Uma cadeia que fornece um nome alternativo para o registo especificado pelo argumento In . Comumente usado para reduzir o nome da tabela para subsequentes referências, evitando referências ambíguas. Se o Alias não for especificado, o nome da tabela ou da consulta será usado como o alias. |
Comentários
Se os critérios especificados pelos argumentos Condição In e Where devolverem mais do que um registo, o bloco de dados LookupRecord funcionará apenas no primeiro registo. No caso de nenhum registo corresponder aos critérios especificados, o Access irá ignorar o conjunto de ações contidas no bloco LookupRecord , como se tivesse sido uma expressão de bloco de macro Se avaliada como falsa.
Exemplo
O exemplo seguinte mostra como utilizar a ação SetReturnVar para devolver um valor de uma macro de dados com nome. Uma ReturnVar com o nome CurrentServiceRequest é devolvida à macro ou à sub-Visual Basic for Applications (VBA) que chamou a macro de dados nomeada.
Código de exemplo fornecido pelaReferência do programador do Microsoft Access 2010.
RunDataMacro
Macro Name tblServiceRequests.dmGetCurrentServiceRequest
Parameters
prmAssignedTo =[ID]
SetProperty
Control Name txtCurrentSR
Property Value
Value =[ReturnVars]![CurrentServiceRequest]
O exemplo seguinte mostra como utilizar a ação RaiseError para cancelar o evento de macro Antes de Alterar dados. Quando o campo AtribuídoPara é atualizado, é utilizado um bloco de dados LookupRecord para determinar se o técnico atribuído está atualmente atribuído a um pedido de serviço aberto. Se for verdade, o evento Antes da Alteração é cancelado e o registo não é atualizado.
/* 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