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