Método Selection.AutomaticLink (Visio)

Vincula automáticamente las formas seleccionadas a las filas de datos del conjunto de registros de datos especificado, sin necesidad de especificar la correspondencia exacta de todas las formas y filas de datos. Devuelve el número de formas vinculadas.

Nota:

Este objeto o miembro Visio solo se encuentra disponible para los usuarios con licencia de Visio Professional 2013.

Sintaxis

expresión. AutomaticLink( _DataRecordsetID_ , _ColumnNames()_ , _AutoLinkFieldTypes()_ , _FieldNames()_ , _AutoLinkBehavior_ , _ShapeIDs()_ )

Expresión Expresión que devuelve un objeto Selection .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
DataRecordsetID Necesario Long Valor de la propiedad ID del objeto DataRecordset que contiene las filas de datos a las que vincular.
ColumnNames() Obligatorio String Matriz de cadenas que corresponde a los nombres de las columnas del conjunto de registros de datos.
AutoLinkFieldTypes() Necesario Long Matriz de valores Long de la enumeración VisAutoLinkFieldTypes, formada por los tipos de atributos de formas. Al menos, una posición de la matriz debe ser un valor que se corresponda con los valores de la misma posición en las matrices ColumnNames y FieldNames.
FieldNames() Obligatorio String Matriz de cadenas que representa los valores de las formas.
AutoLinkBehavior Necesario Long Combinación de una o más constantes de la enumeración VisAutoLinkBehavior que especifica cómo se llevará a cabo el proceso de vinculación. Vea la sección Comentarios para los valores posibles.
ShapeIDs() Necesario Long Parámetro de salida. Matriz de identificadores (de tipo Long) de las formas vinculadas por el método.

Valor devuelto

Long

Comentarios

Para el parámetro ColumnNames(), pase una matriz de cadena formada por los nombres de las columnas de la base de datos. Al menos una posición de la matriz debe tener un valor que se corresponda con los valores de la misma posición en las matrices AutoLinkFieldTypes() y FieldNames().

Para el parámetro AutoLinkFieldTypes(), pase una matriz de valores Long desde la enumeración VisAutoLinkFieldTypes, formada por los tipos de atributos de las formas. Entre los atributos de las formas citados se encuentran el alto, el ancho, el texto y el nombre del patrón del que se deriva la forma. Al menos, una posición de la matriz debe ser un valor que se corresponda con los valores de la misma posición en las matrices ColumnNames() y FieldNames().

Para el parámetro FieldNames(), pase una matriz de cadenas que represente valores de formas. Al menos una posición de la matriz FieldNames() debe tener un valor que se corresponda con los valores de la misma posición en las matrices ColumnNames() y AutoLinkFieldTypes().

Para la mayoría de los valores de AutoLinkFieldTypes(), por ejemplo, para visAutoLinkShapeText, no es necesario especificar el valor FieldNames(); puede pasar una cadena vacía en su lugar. Sin embargo, al pasar los valores visAutoLinkCustPropsLabel, visAutoLinkUserRowName, visAutoLinkPropRowNameU o visAutoLinkUserRowNameU de AutoLinkFieldTypes, debe pasar un valor para FieldNames() que especifique por completo el elemento de datos de forma (denominado valor de propiedad personalizado en algunas versiones anteriores de Visio) para compararlo con el nombre de la columna de datos.

Para el parámetro AutoLinkBehavior opcional, puede pasar una combinación de uno o más valores desde la enumeración VisAutoLinkBehaviors que especifiquen cómo se llevará a cabo el proceso de vinculación. En la siguiente tabla se muestran los valores posibles.

Constante Valor Descripción
visAutoLinkDontReplaceExistingLinks 16 No reemplaza los vínculos existentes.
visAutoLinkGenericProgressBar 2 Muestra la barra de progreso genérica en lugar de la de progreso detallado.
visAutoLinkIncludeHiddenProps 64 Incluye las propiedades ocultas.
visAutoLinkNoApplyDataGraphic 4 No aplica el gráfico de datos predeterminado a las formas vinculadas.
visAutoLinkNullMatchesNoFormula 32 Permite asignar valores null de base de datos a la opción "Sin fórmulas" en la hoja de cálculo ShapeSheet de Visio.
visAutoLinkReplaceExistingLinks 8 Reemplaza los vínculos existentes.
visAutoLinkSelectedShapesOnly 1 Vincula sólo las formas seleccionadas, no las subformas de las formas seleccionadas.

No puede pasar ningún valor que incluya tanto visAutoLinkDontReplaceExistingLinks como visAutoLinkReplaceExistingLinks. El método devuelve un error si intenta hacerlo.

Si pasa un valor para AutoLinkBehavior, se modifica el comportamiento predeterminado, que es el siguiente:

  • Usar la configuración de LinkReplaceBehavior del conjunto de registros de datos para determinar si se rompen los vínculos existentes. Si la configuración es visLinkReplacePrompt, se trata como si fuera visLinkReplaceAlways.

  • Vincular las formas seleccionadas y sus subformas.

  • No se reemplazan la barra de progreso detallado por la barra de progreso genérica.

  • Aplicar gráficos de datos.

Para el parámetro ShapeIDs(), pase una matriz vacía sin dimensiones de tipo Long. Visio devolverá la matriz rellena con los identificadores de las formas que el método vinculó a los datos.

Para proporcionar a Visio suficiente información para crear los vínculos, debe proporcionar al menos un conjunto de datos coincidentes: el nombre de una columna en el conjunto de registros de datos, un tipo de atributo de forma y, si es necesario, un valor de forma, todo en la misma posición de índice de las matrices correspondientes que se pasan al método. El tipo de atributo de forma indica el atributo de la forma en que basar la coincidencia. El atributo puede ser el valor de un elemento de datos de formas, el texto de la forma o cualquiera de los valores especificados en la enumeración VisAutoLinkFieldTypes.

Por ejemplo, supongamos que el dibujo contiene una selección de formas que representan a distintos empleados y que el texto de la forma, que en este caso muestra los nombres de los empleados, identifica las formas. Como se muestra en el ejemplo de este tema, pasaría al método los siguientes parámetros:

  • Para el parámetro ColumnNames(), una matriz que contenga el nombre de columna "EmployeeName" en la posición 0 de la matriz.

  • Para el parámetro AutoLinkFieldTypes(), el valor de la enumeración visAutoLinkShapeText en la posición 0 de la matriz.

  • Para el parámetro FieldNames(), una cadena vacía (''") en la posición 0 de la matriz, ya que, cuando AutoLinkFieldTypes() es visAutoLinkShapeText, no es necesario especificar el valor de FieldNames().

Ejemplo:

La siguiente macro de Microsoft Visual Basic para Aplicaciones (VBA) muestra cómo se usa el método AutomaticLink para vincular automáticamente las formas de un dibujo con los datos de un conjunto de registros de datos. Vincula los datos de los empleados contenidos en un conjunto de registros de datos a las formas del dibujo cuyo texto corresponde a los nombres de los empleados.

Antes de ejecutar esta macro, cree un conjunto de registros de datos que contenga una columna denominada "EmployeeName" con la lista de los nombres de los empleados, así como las columnas adicionales que desee incluir y, a continuación, asigne los nombres de los empleados como texto de forma a las formas correspondientes del dibujo de Visio. Use el método DataRecordsets.Add para agregar el conjunto de registros de datos a la colección DataRecordsets del documento activo. Asegúrese de que el conjunto de registros de datos es el último que agregó a la colección.

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

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.