Freigeben über


Selection.AutomaticLink-Methode (Visio)

Verknüpft ausgewählte Shapes automatisch mit Datenzeilen im angegebenen Datenrecordset, ohne dass Sie für alle Shapes und Datenzeilen die genaue Entsprechung angeben müssen. Gibt die Anzahl von verknüpften Shapes zurück.

Hinweis

Dieses Visio-Objekt oder dieses Visio-Mitglied ist nur für lizenzierte Benutzer von Visio Professional 2013 verfügbar.

Syntax

Ausdruck. AutomaticLink( _DataRecordsetID_ , _ColumnNames()_ , _AutoLinkFieldTypes()_ , _FieldNames()_ , _AutoLinkBehavior_ , _ShapeIDs()_ )

Ausdruck Ein Ausdruck, der ein Selection-Objekt zurückgibt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
DataRecordsetID Erforderlich Long Der Wert der ID-Eigenschaft für das DataRecordset-Objekt, das die Datenzeilen enthält, mit denen eine Verknüpfungen hergestellt werden soll.
ColumnNames() Erforderlich String Ein Array von Zeichenfolgen, die Spaltennamen im Datenrecordset entsprechen.
AutoLinkFieldTypes() Erforderlich Long Ein Array von Long-Werten aus der VisAutoLinkFieldTypes-Enumeration , das aus Shape-Attributtypen besteht. Mindestens eine Position im Array muss einen Wert aufweisen, der mit den Werten der gleichen Position in den ColumnNames- und FieldNames-Arrays übereinstimmt.
FieldNames() Erforderlich String Ein Array von Zeichenfolgen, die Shape-Werte darstellen.
AutoLinkBehavior Erforderlich Long Eine Kombination mit Konstanten aus der VisAutoLinkBehavior-Enumeration, die angeben, wie die Verknüpfung durchgeführt wird. Mögliche Werte finden Sie in den Hinweisen.
ShapeIDs() Erforderlich Long Ausgabeparameter. Ein Array von Shape-IDs (des Typs Long), die mit dieser Methode verknüpft wurden.

Rückgabewert

Long

HinwBemerkungeneise

Übergeben Sie für den ColumnNames()-Parameter ein Zeichenfolgenarray, das aus Namen von Spalten in der Datenbank besteht. Mindestens eine Position im Array muss einen Wert aufweisen, der den Werten an derselben Position in den Arrays AutoLinkFieldTypes() und FieldNames() entspricht.

Übergeben Sie für den AutoLinkFieldTypes()-Parameter ein Array von Long-Werten aus der VisAutoLinkFieldTypes-Enumeration. Dieses Array besteht aus Shape-Attributtypen, zu denen Höhe, Breite, Text und Name des Master-Shapes gehören, von dem das Shape abgeleitet wurde. Mindestens eine Position im Array muss einen Wert besitzen, der den Werten in derselben Position in den Arrays ColumnNames() und FieldNames() entspricht.

Übergeben Sie für den Parameter FieldNames() ein Array von Zeichenfolgen, die Shape-Werte darstellen. Mindestens eine Position im FieldNames()-Array muss einen Wert aufweisen, der den Werten an derselben Position in den Arrays ColumnNames() und AutoLinkFieldTypes() entspricht.

Für die meisten Werte von AutoLinkFieldTypes(), z. B. für visAutoLinkShapeText, ist es nicht erforderlich, den FieldNames()-Wert anzugeben; Sie können stattdessen eine leere Zeichenfolge übergeben. Wenn Sie jedoch die VisAutoLinkCustPropsLabel-, visAutoLinkUserRowName-, visAutoLinkPropRowNameU- oder visAutoLinkUserRowNameU-Werte von AutoLinkFieldTypes übergeben, müssen Sie einen Wert für FieldNames() übergeben, der das Shape-Datenelement (in einigen früheren Versionen von Visio als benutzerdefinierter Eigenschaftswert bezeichnet) vollständig angibt, um es mit dem Datenspaltennamen zu vergleichen.

Für den optionalen AutoLinkBehavior-Parameter können Sie eine Kombination aus einem oder mehreren Werten aus der VisAutoLinkBehaviors-Enumeration übergeben, um anzugeben, wie die Verknüpfung durchgeführt wird. In der folgenden Tabelle sind mögliche Werte aufgeführt.

Konstante Wert Beschreibung
visAutoLinkDontReplaceExistingLinks 16 Vorhandene Verknüpfungen nicht ersetzen.
visAutoLinkGenericProgressBar 2 Allgemeine Statusanzeige anstelle einer ausführlichen Statusanzeige einblenden.
visAutoLinkIncludeHiddenProps 64 Ausgeblendete Eigenschaften einschließen.
visAutoLinkNoApplyDataGraphic 4 Standarddatengrafik nicht auf verknüpfte Shapes anwenden.
visAutoLinkNullMatchesNoFormula 32 Zulassen, dass Datenbank-Nullwerte der Option No Formula in der Visio-ShapeSheet-Tabelle zugeordnet werden können.
visAutoLinkReplaceExistingLinks 8 Vorhandene Verknüpfungen ersetzen.
visAutoLinkSelectedShapesOnly 1 Nur ausgewählte Shapes verknüpfen, keine Teil-Shapes, die ausgewählten Shapes untergeordnet sind.

Es ist nicht möglich, einen Wert zu übergeben, der sowohl visAutoLinkDontReplaceExistingLinks als auch visAutoLinkReplaceExistingLinks enthält. Die Methode gibt einen Fehler zurück, wenn Sie dies versuchen.

Wenn Sie einen Wert für AutoLinkBehavior übergeben, wird dadurch das folgende Standardverhalten geändert:

  • Verwenden Sie die LinkReplaceBehavior-Einstellung des Datenrecordsets, um zu bestimmen, ob vorhandene Verknüpfungen aufgehoben werden. Lautet die Einstellung visLinkReplacePrompt, wird das Datenrecordset behandelt, als lautete die Einstellung visLinkReplaceAlways.

  • Ausgewählte Shapes werden mit ihren Teil-Shapes verknüpft.

  • Die ausführliche Statusanzeige wird nicht durch die allgemeine Statusanzeige ersetzt.

  • Datengrafiken werden angewendet.

Übergeben Sie für den ShapeIDs()-Parameter ein leeres, dimensionsloses Array vom Typ Long. Visio gibt das Array zurück, das die IDs der Shapes enthält, die von der Methode mit Daten verknüpft wurden.

Um Visio genügend Informationen zum Erstellen der Verknüpfungen bereitzustellen, müssen Sie mindestens einen Satz übereinstimmener Daten angeben: den Namen einer Spalte im Datenrecordset, einen Shape-Attributtyp und ggf. einen Shape-Wert an derselben Indexposition der entsprechenden Arrays, die Sie an die -Methode übergeben. Der Shape-Attributtyp gibt das Attribut des Shapes an, auf dem der Abgleich basiert. Das Attribut kann der Wert eines Shape-Datenelements, eines Shape-Texts oder eines anderen der in der VisAutoLinkFieldTypes-Enumeration angegebenen Werte sein.

Nehmen Sie beispielsweise an, dass die Zeichnung eine Auswahl von Shapes enthält, die verschiedene Mitarbeiter darstellen, und dass der Shape-Text, der in diesem Fall die Namen der entsprechenden Mitarbeiter angibt, die Shapes identifiziert. Wie im Beispiel in diesem Thema gezeigt, würden Sie die folgenden Parameter an die Methode übergeben:

  • Für den ColumnNames()-Parameter ein Array, das den Spaltennamen "EmployeeName" an Arrayposition 0 enthält.

  • Für den AutoLinkFieldTypes()-Parameter den Aufzählungswert visAutoLinkShapeText an der Arrayposition 0.

  • Für den FieldNames()-Parameter eine leere Zeichenfolge (''") an der Arrayposition 0, da der Wert für FieldNames() nicht angegeben werden muss, wenn für AutoLinkFieldTypes() der Wert visAutoLinkShapeText festgelegt ist.

Beispiel

Das folgende VBA-Makro (Microsoft Visual Basic für Applikationen) veranschaulicht, wie Sie mit der AutomaticLink-Methode Shapes in einer Zeichnung automatisch mit Daten in einem Datenrecordset verknüpfen. Dabei werden Daten für Mitarbeiter, die in einem Datenrecordset enthalten sind, mit Shapes in der Zeichnung verknüpft, deren Shape-Text den Mitarbeiternamen entspricht.

Erstellen Sie vor dem Ausführen dieses Makros ein Datenrecordset, das eine Spalte mit dem Namen "EmployeeName" enthält, in der Mitarbeiternamen sowie alle anderen Spalten aufgelistet sind, die Sie einschließen möchten, und weisen Sie diese Mitarbeiternamen dann den entsprechenden Shapes in Ihrer Visio-Zeichnung als Formtext zu. Verwenden Sie die DataRecordsets.Add-Methode , um das Datenrecordset der DataRecordsets-Auflistung des aktiven Dokuments hinzuzufügen. Stellen Sie sicher, dass das Datenrecordset das ist, das Sie der Sammlung zuletzt hinzugefügt haben.

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.