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.

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 In pode conter o nome da tabela, uma consulta select 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 operará 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 operará apenas no primeiro registro. Caso nenhum registro corresponda aos critérios especificados, o Access ignorará o conjunto de ações contidos no bloco LookupRecord , como se fosse uma expressão do bloco de macro If avaliada como falsa.

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 para a macro ou sub-rotina do 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á atualmente atribuído a uma solicitação de serviço aberta. Se isso for verdadeiro, o evento Antes da Alteração 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