Compartilhar via


Bloco de dados PesquisarRegistro

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.

Setting

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 In pode conter o nome da tabela, uma consulta selecionada ou uma instrução SQL.

OBSERVAÇÃO: o registro especificado não pode incluir dados armazenados em uma tabela vinculada ou fonte 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 geralmente são equivalentes à cláusula WHERE em uma expressão SQL, sem a palavra WHERE. Se os critérios forem omitidos, o bloco de dados LookupRecord funcionará 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 de caracteres que fornece um nome alternativo para o registro 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 In e Where Condition retornarem mais de um registro, o bloco de dados LookupRecord funcionará apenas no primeiro registro. No caso de nenhum registro corresponder aos critérios especificados, o Access ignorará o conjunto de ações contidas no bloco LookupRecord , como se tivesse sido uma expressão de bloco de macro If avaliada como false.

Exemplo

O exemplo a seguir mostra como usar a ação SetReturnVar para retornar um valor de uma macro de dados nomeada. Um ReturnVar chamado CurrentServiceRequest é retornado à sub-rotina de macro ou 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 a seguir mostra como usar a ação RaiseError para cancelar o evento de macro de dados Antes de Alterar. Quando o campo AssignedTo é atualizado, um bloco de dados LookupRecord é usado para determinar se o técnico atribuído está atribuído atualmente a uma solicitação de serviço aberta. Se isso for true, o evento Before Change será cancelado e o registro não será 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