Partager via


Méthode Resource.SetField (Project)

Définit la valeur du champ personnalisé de la ressource spécifiée.

Syntaxe

expression. SetField( _FieldID_, _Value_ )

Expression Variable qui représente un objet Resource .

Parameters

Nom Requis/Facultatif Type de données Description
FieldID Obligatoire Long Pour un champ personnalisé local, il peut s’agir de l’une des constantes PjField pour les champs personnalisés de ressource. Pour un champ personnalisé d’entreprise, utilisez la méthode FieldNameToFieldConstant pour obtenir le FieldID.
Valeur Obligatoire String Valeur du champ.

Exemple

L’exemple suivant illustre comment accéder à un champ personnalisé de ressource d’entreprise en utilisant les méthodes SetField et GetField pour l’objet Resource de pair avec les méthodes FieldNameToFieldConstant et FieldConstantToFieldName.

  1. Pour utiliser l’exemple, utilisez Project Web App pour créer un champ personnalisé de texte de ressource d’entreprise nommé, par exemple TestEntResText.

  2. Redémarrez Project Professionnel avec un profil Project Server, afin qu’il inclue le nouveau champ personnalisé.

  3. Créez un projet, créez l’équipe à partir des ressources d’entreprise, puis affectez une ressource à la première tâche.

  4. La macro TestEnterpriseResourceCF utilise la méthode FieldNameToFieldConstant pour trouver le nombre resourceField, par exemple, 205553667.

  5. La macro affiche le nombre et la valeur de texte dans une zone de message à l’aide de la méthode GetField.

  6. La macro définit une nouvelle valeur pour le champ personnalisé, à l’aide de la méthode SetField

  7. La macro obtient le nom de champ au moyen de la méthode FieldConstantToFieldName, puis affiche le nom du champ et la nouvelle valeur dans une autre zone de message.

Sub TestEnterpriseResourceCF() 
    Dim resourceField As Long 
    Dim resourceFieldName As String 
    Dim resourceFieldValue As String 
    Dim message As String 
 
    resourceField = FieldNameToFieldConstant("TestEntResText", pjResource) 
 
    ' Show the enterprise resource field number and old value. 
    message = "Enterprise resource field number: " & resourceField & vbCrLf 
    resourceFieldValue = ActiveProject.Tasks(1).Assignments(1).Resource.GetField(resourceField) 

    If resourceFieldValue = "" Then resourceFieldValue = "[No value]" 
    MsgBox message & "Field value: " & resourceFieldValue 
 
    ' Set a value for the enterprise resource custom field. 
    ' Use either the Resources collection or the Assignments collection 
    ' to access the resource custom field. 
    ' Here, use the Assignments collection. 
    ActiveProject.Tasks(1).Assignments(1).Resource.SetField _
        FieldID:=resourceField, Value:="This is a new value." 
 
    ' For a demonstration, get the field name from the number, 
    ' and then verify the new value. 
    resourceFieldName = FieldConstantToFieldName(resourceField) 
 
    ' Here, use the Resources collection to access the custom field. 
    resourceFieldValue = ActiveProject.Resources(1).GetField(resourceField) 
 
    message = "New value for field: " & resourceFieldName & vbCrLf 
    MsgBox message & "Field value: " & resourceFieldValue 
End Sub

Pour obtenir un exemple qui utilise un champ personnalisé de ressource locale, consultez la méthode GetField .

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.