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
Hinweise
Ü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 übereinstimmenden 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.