Partager via


LookupRecord, bloc de données

S’applique à : Access 2013, Office 2013

Un bloc de données RechercherEnregistrement effectue un ensemble d'actions sur un enregistrement spécifique.

Remarque

Le bloc de données RechercherEnregistrement est disponible uniquement dans les macros de données.

Setting

L’action DéfinirChamp utilise les arguments suivants.

Argument

Obligatoire

Description

Dans le paramètre

Oui

Chaîne qui identifie l’enregistrement sur lequel opérer. L’argument In peut contenir le nom de la table, une requête select ou une instruction SQL.

REMARQUE : L’enregistrement spécifié ne peut pas inclure de données stockées dans une table liée ou une source de données ODBC.

Condition Where

Non

Expression de type Chaîne qui permet de restreindre la plage de données sur laquelle opère le bloc de données RechercherEnregistrement. Par exemple, les critères sont souvent équivalents à la clause WHERE dans une expression SQL, sans le mot WHERE. Si des critères sont omis, le bloc de données LookupRecord fonctionne sur l’ensemble du domaine spécifié par l’argument In . Tout champ inclus dans les critères doit également être un champ dans In.

Alias

Non

Chaîne qui fournit un autre nom pour l’enregistrement spécifié par l’argument In . On l’utilise souvent pour raccourcir le nom de la table pour les références ultérieures, afin d’éviter d’éventuelles références ambiguës. Si Alias n’est pas spécifié, le nom de la table ou de la requête est utilisé comme alias.

Remarques

Si les critères spécifiés par les arguments Condition In et Where retournent plusieurs enregistrements, le bloc de données LookupRecord fonctionne uniquement sur le premier enregistrement. Si aucun enregistrement ne correspond aux critères spécifiés, Access ignore l’ensemble des actions contenues dans le bloc LookupRecord , comme s’il s’agit d’une expression de bloc de macro If évaluée comme false.

Exemple

L’exemple suivant montre comment utiliser l’action SetReturnVar pour retourner une valeur à partir d’une macro de données nommée. Un objet ReturnVar nommé CurrentServiceRequest est retourné à la macro ou à la sous-routine Visual Basic pour Applications (VBA) qui a appelé la macro de données nommée.

Exemple de code fourni parMicrosoft Access 2010 Programmer’s Reference.

    RunDataMacro
        Macro Name tblServiceRequests.dmGetCurrentServiceRequest
    
    Parameters
        prmAssignedTo =[ID]
    
    SetProperty
        Control Name txtCurrentSR
        Property Value
        Value =[ReturnVars]![CurrentServiceRequest]

L’exemple suivant montre comment utiliser l’action RaiseError pour annuler l’événement de macro de données Avant de modifier. Lorsque le champ AssignedTo est mis à jour, un bloc de données LookupRecord est utilisé pour déterminer si le technicien affecté est actuellement affecté à une demande de service ouverte. Si cela est vrai, l’événement Before Change est annulé et l’enregistrement n’est pas mis à jour.

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