Partager via


DataRecordsets.AddFromXML, méthode (Visio)

Ajoute un objet DataRecordset à la collection DataRecordsets et remplit le jeu d’enregistrements de données résultant avec les données fournies sous la forme d’une chaîne XML.

Remarque

Cet objet ou ce membre Visio est disponible uniquement pour les titulaires d’une licence d’utilisation de Visio Professionnel 2013.

Syntaxe

expression. AddFromXML (XMLString, AddOptions, Name)

Expression Expression qui renvoie un objet DataRecordsets .

Parameters

Nom Requis/Facultatif Type de données Description
XMLString Requis String Chaîne XML conforme au schéma XML classique ADO (Microsoft ActiveX Data Objects) et qui décrit les données que vous souhaitez importer.
AddOptions Obligatoire Long Options qui déterminent les propriétés du jeu d’enregistrements de données à ajouter. Combinaison d’une ou de plusieurs valeurs énumérées de VisDataRecordsetAddOptions. Pour plus d’informations, consultez la rubrique Remarques.
Name Facultatif String Attribue un nom complet à l'objet DataRecordset ajouté.

Valeur renvoyée

DataRecordset

Remarques

Pour le paramètre ChaîneXML, passe une chaîne XML conforme au schéma XML classique ADO et qui décrit les données à importer. L'exemple présenté plus loin dans cette rubrique montre une chaîne XML simple.

Le paramètre AjouterOptions peut être une combinaison d’une ou plusieurs des valeurs issues de l’énumération VisDataRecordsetAddOptions, qui est déclarée dans la bibliothèque de types de Microsoft Visio. La valeur par défaut est zéro (0) et spécifie qu'aucune option n'est définie.

Constante Valeur Description
visDataRecordsetNoExternalDataUI 1 Empêche les données du nouveau jeu d'enregistrements de données d'être affichées dans la fenêtre Données externes.
visDataRecordsetNoAdvConfig 4 Empêche l'affichage du jeu d'enregistrements de données dans la fenêtre Configurer l'actualisation.
visDataRecordsetDontCopyLinks 16 Ajoute un jeu d’enregistrements de données, mais les liaisons de données de forme ne sont ni coupées ni copiées.

Une fois ces valeurs attribuées, vous ne pouvez pas les modifier pour l'objet DataRecordset.

L'argument Nom est une chaîne facultative qui permet d'attribuer un nom complet au jeu d'enregistrement de données. Si vous demandez l'affichage de la fenêtre Données externes dans l'interface de Visio, le nom passé pour cet argument apparaît sous l'onglet de la fenêtre Données externes qui correspond au jeu d'enregistrement de données que vous avez ajouté.

Par opposition aux jeux d’enregistrements de données créés au moyen de la méthode Add ou AddFromConnectionFile, les jeux d’enregistrements de données créés au moyen de la méthode AddFromXML ne sont pas associés à un objet DataConnection.

De plus, Visio n’actualise jamais un jeu d’enregistrements de données que vous avez créé automatiquement avec la méthode AddFromXML, quelle que soit la valeur de la propriété DataRecordset.RefreshInterval. Pour actualiser les données d’un tel jeu d’enregistrements de données, vous devez appeler la méthode DataRecordset.RefreshUsingXML .

Si la méthode AddFromXML réussit, elle effectue les actions suivantes :

  • Crée un objet DataRecordset et lui attribue le nom défini dans le paramètre Nom. Si vous ne spécifiez pas de nom, Visio attribue au jeu d’enregistrements de données le nom de la table de base de données qui est la source des données.

  • Mappe les types de données des colonnes de la source de données aux types de données équivalents dans Visio, tout en filtrant les résultats pour supprimer les colonnes de la source de données qui ne peuvent pas être liées aux formes Visio car elles ne possèdent aucun type de données équivalent dans Visio.

  • Attribue un ID de ligne de données Visio à chaque ligne dans le jeu d’enregistrements de données, excepté si les données importées contiennent déjà des ID de ligne de données Visio valides. Pour plus d’informations sur les ID de ligne de données Visio, consultez la rubrique DataRecordset.GetDataRowIDs .

Exemple

La macro Microsoft Visual Basic pour Applications (VBA) montre comment utiliser la méthode AddFromXML pour connecter un dessin Visio à des données contenues dans une chaîne XML ADO.

Un échantillon de chaîne XML est présenté ici. Lorsqu'elle est passée à la méthode AddFromXML, cette chaîne crée un jeu d'enregistrements de données qui contient une colonne appelée « Cities » (Villes) et deux lignes de données dont les entrées correspondent aux noms des villes.

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882' 
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' 
xmlns:rs='urn:schemas-microsoft-com:rowset' 
xmlns:z='#RowsetSchema'> 
<s:Schema id='RowsetSchema'> 
<s:ElementType name='row' content='eltOnly' rs:updatable='true'> 
<s:AttributeType name='c1' rs:name='Cities' 
rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'> 
<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/> 
</s:AttributeType> 
<s:extends type='rs:rowbase'/> 
</s:ElementType> 
</s:Schema> 
<rs:data> 
<z:row c1='Seattle' /> 
<z:row c1='Redmond' /> 
</rs:data> 
</xml>

Dans le code exemple suivant, nous passons à la méthode AddFromXML le nom d'une chaîne XML contenant les données et le nom d'une chaîne contenant le nom complet à attribuer au nouveau jeu d'enregistrements de données créé.

Public Sub AddFromXML_Example() 
 
    Dim strXML As String 
    Dim strName As String 
    Dim vsoDataRecordset As Visio.DataRecordset 
 
    strXML = "<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'" + Chr(10) _ 
    & "xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'" + Chr(10) _ 
    & "xmlns:rs='urn:schemas-microsoft-com:rowset'" + Chr(10) _ 
    & "xmlns:z='#RowsetSchema'>" + Chr(10) _ 
    & "<s:Schema id='RowsetSchema'>" + Chr(10) _ 
    & "<s:ElementType name='row' content='eltOnly' rs:updatable='true'>" + Chr(10) _ 
    & "<s:AttributeType name='c1' rs:name='Cities'" + Chr(10) _ 
    & "rs:number='2' rs:nullable='true' rs:maydefer='true' rs:write='true'>" + Chr(10) _ 
    & "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _ 
    & "</s:AttributeType>" + Chr(10) _ 
    & "<s:extends type='rs:rowbase'/>" + Chr(10) _ 
    & "</s:ElementType>" + Chr(10) _ 
    & "</s:Schema>" + Chr(10) _ 
    & "<rs:data>" + Chr(10) _ 
    & "<z:row c1='Seattle'/>" + Chr(10) _ 
    & "<z:row c1='Redmond'/>" + Chr(10) _ 
    & "</rs:data>" + Chr(10) _ 
    & "</xml>" 
 
    strName = "City Names" 
 
    Set vsoDataRecordset = ThisDocument.DataRecordsets.AddFromXML(strXML, 0, strName) 
 
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.