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