Selection.AutomaticLink, méthode (Visio)
Lie les formes sélectionnées avec des lignes de données dans le jeu d'enregistrements de données spécifié automatiquement, sans que vous ayez à spécifier la correspondance exacte entre toutes les formes et les lignes de données. Renvoie le nombre de formes liées.
Remarque
Cet objet ou ce membre Visio est disponible uniquement pour les titulaires d’une licence d’utilisation de Visio Professionnel 2013.
Syntaxe
expression. AutomaticLink
( _DataRecordsetID_
, _ColumnNames()_
, _AutoLinkFieldTypes()_
, _FieldNames()_
, _AutoLinkBehavior_
, _ShapeIDs()_
)
Expression Expression qui renvoie un objet Selection .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
DataRecordsetID | Obligatoire | Long | Valeur de la propriété ID de l’objet DataRecordset contenant les lignes de données avec lesquelles établir une liaison. |
ColumnNames() | Requis | String | Tableau de chaînes qui correspondent aux noms des colonnes dans le jeu d'enregistrements de données. |
AutoLinkFieldTypes() | Obligatoire | Long | Tableau de valeurs Long provenant de l’énumération VisAutoLinkFieldTypes, constitué de types d’attribut de forme. Au moins une position dans le tableau doit posséder une valeur correspondant aux valeurs à la même position dans les tableaux ColumnNames et FieldNames. |
FieldNames() | Requis | String | Tableau de chaînes qui représentent des valeurs de forme. |
AutoLinkBehavior | Obligatoire | Long | Combinaison d'une ou de plusieurs constantes à partir de l'énumération VisAutoLinkBehavior qui spécifie comment la liaison doit se produire. Les valeurs possibles, reportez-vous à la section Remarques. |
ShapeIDs() | Obligatoire | Long | Paramètre sortant. Tableau d'ID de formes (de type Long) qui ont été liés par la méthode. |
Valeur renvoyée
Entier long
Remarques
Pour le paramètre NomsColonnes(), transférez un tableau de chaînes constitué de noms de colonnes dans la base de données. Au moins une position dans le tableau doit avoir une valeur qui correspond aux valeurs dans la même position dans les tableaux AutoLinkFieldTypes() et FieldNames().
Pour le paramètre TypesChampLienAuto(), transférez un tableau de valeurs Long depuis l’énumération VisAutoLinkFieldTypes, constitué de types d’attribut de forme. Parmi les attributs de forme énumérés se trouvent la hauteur, la largeur, le texte et le nom du maître dont provient la forme. Une position au moins dans le tableau doit posséder une valeur qui corresponde aux valeurs à la même position dans les tableaux NomsColonnes() et NomsChamps().
Pour le paramètre NomsChamps(), transférez un tableau de chaînes qui représente des valeurs de forme. Au moins une position dans le tableau FieldNames() doit avoir une valeur qui correspond aux valeurs situées à la même position dans les tableaux ColumnNames() et AutoLinkFieldTypes().
Pour la plupart des valeurs de AutoLinkFieldTypes(), par exemple, pour visAutoLinkShapeText, il n’est pas nécessaire de spécifier la valeur FieldNames() ; vous pouvez passer une chaîne vide à la place. Toutefois, lorsque vous transmettez les valeurs visAutoLinkCustPropsLabel, visAutoLinkUserRowName, visAutoLinkPropRowNameU ou visAutoLinkUserRowNameU d’AutoLinkFieldTypes, vous devez passer une valeur pour FieldNames() qui spécifie entièrement l’élément de données de forme (appelé valeur de propriété personnalisée dans certaines versions précédentes de Visio) à comparer au nom de la colonne de données.
Pour le paramètre ComportementLienAuto facultatif, vous pouvez transférer une combinaison d'une ou de plusieurs valeurs à partir de l'énumération VisAutoLinkBehaviors qui spécifie la manière dont la liaison doit se produire. Le tableau suivant montre les valeurs possibles.
Constante | Valeur | Description |
---|---|---|
visAutoLinkDontReplaceExistingLinks | 16 | Ne pas remplacer les liens existants. |
visAutoLinkGenericProgressBar | 2 | Afficher la barre de progression générique au lieu d'une barre plus détaillée. |
visAutoLinkIncludeHiddenProps | 64 | Inclure les propriétés masquées |
visAutoLinkNoApplyDataGraphic | 4 | Ne pas appliquer le graphique de données par défaut aux formes liées. |
visAutoLinkNullMatchesNoFormula | 32 | Autoriser le mappage des valeurs de base de données Null à « Aucune formule » dans la feuille de calcul Visio ShapeSheet. |
visAutoLinkReplaceExistingLinks | 8 | Remplacer des liens existants. |
visAutoLinkSelectedShapesOnly | 1 | Lier des formes sélectionnées uniquement, pas des formes secondaires de formes sélectionnées. |
Vous ne pouvez pas transférer une valeur qui comprend visAutoLinkDontReplaceExistingLinks et visAutoLinkReplaceExistingLinks. La méthode retourne une erreur si vous tentez de le faire.
Si vous transférez une valeur pour ComportementLienAuto, elle modifie le comportement par défaut, qui se présente comme suit :
Utilisez le paramètre LinkReplaceBehavior du jeu d'enregistrements de données pour déterminer s'il convient de rompre des liens existants. Si ce paramètre est visLinkReplacePrompt, il est traité comme s'il s'agissait de visLinkReplaceAlways.
Liez les formes sélectionnées et leurs formes secondaires.
Ne remplacez pas la barre de progression détaillée par la barre de progression générique.
Appliquez des graphiques de données.
Pour le paramètre ShapeIDs(), passez un tableau vide sans dimension de type Long. Visio renvoie le tableau rempli avec les ID des formes qui ont été liées par la méthode aux données.
Pour fournir à Visio suffisamment d’informations pour créer les liens, vous devez fournir au moins un ensemble de données correspondantes : le nom d’une colonne dans le jeu d’enregistrements de données, un type d’attribut de forme et, si nécessaire, une valeur de forme, le tout à la même position d’index des tableaux correspondants que vous passez à la méthode. Le type d’attribut de forme indique l’attribut de la forme sur laquelle baser la correspondance. L’attribut peut être la valeur d’un élément de données de forme, d’un texte de forme ou d’une autre des valeurs spécifiées dans l’énumération VisAutoLinkFieldTypes .
Supposez, par exemple, que votre dessin contient une sélection de formes représentant des employés différents et que le texte de forme, qui affiche dans ce cas les noms des employés respectifs, identifie les formes. Comme l'illustre l'exemple contenu dans cette rubrique, vous transférez les paramètres suivants à la méthode :
Pour le paramètreNomsColonnes(), un tableau contenant le nom de colonne « NomEmployé » à la position 0 du tableau.
Pour le paramètre TypesChampLienAuto(), la valeur d'énumération visAutoLinkShapeText à la position 0 du tableau.
Pour le paramètre NomsChamps(), une chaîne vide (''") à la position 0 du tableau, car, lorsque TypesChampLienAuto() correspond à visAutoLinkShapeText, il n'est pas nécessaire de spécifier la valeur NomsChamps().
Exemple
La macro Microsoft Visual Basic pour Applications (VBA) suivante indique comment utiliser la méthode AutomaticLink pour lier automatiquement des formes d'un dessin à des données dans un jeu d'enregistrements de données. Elle lie des données d'employés contenues dans un jeu d'enregistrements de données à des formes du dessin dont le texte de forme correspond à des noms d'employés.
Avant d’exécuter cette macro, créez un jeu d’enregistrements de données qui contient une colonne nommée « NomEmployé », qui répertorie des noms d’employés, ainsi que toute autre colonne que vous voulez inclure, puis attribuez les noms d’employés en tant que texte de forme à des formes correspondantes dans votre dessin Visio. Utilisez la méthode DataRecordsets.Add pour ajouter le jeu d’enregistrements de données à la collection DataRecordsets du document actif. Vérifiez que le jeu d’enregistrements de données correspond au dernier qui a été ajouté à la collection.
Public Sub AutomaticLink_Example()
Dim vsoDataRecordset As Visio.DataRecordset
Dim vsoSelection As Visio.Selection
Dim astrColumnNames(1) As String
Dim alngFieldTypes(1) As Long
Dim astrFieldNames(1) As String
Dim alngShapesLinked() As Long
Dim intCount As Integer
intCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intCount )
astrColumnNames(0) = "EmployeeName"
alngFieldTypes(0) = Visio.VisAutoLinkFieldTypes.visAutoLinkShapeText
astrFieldNames(0) = ""
ActiveWindow.DeselectAll
ActiveWindow.SelectAll
Set vsoSelection = ActiveWindow.Selection
vsoSelection.AutomaticLink vsoDataRecordset.ID, _
astrColumnNames, _
alngFieldTypes, _
astrFieldNames, 0, alngShapesLinked
End Sub
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.