XmlForm.DataSources property

Office 2013 and later

Gets the DataSourceCollection object associated with the form.

Namespace:  Microsoft.Office.InfoPath
Assembly:  Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)

'Declaration
Public MustOverride ReadOnly Property DataSources As DataSourceCollection
	Get
'Usage
Dim instance As XmlForm
Dim value As DataSourceCollection

value = instance.DataSources

Property value

Type: Microsoft.Office.InfoPath.DataSourceCollection
A DataSourceCollection that contains any DataSource objects associated with the form.

The DataSourceCollection object contains a collection of DataSource objects that represent all external (secondary) data sources associated with the form template. The DataSourceCollection object also contains a DataSource object that represents the main data source of the form. This means that developers will have two ways to return the DataSource object that represents the main data source: by using DataSources[""] or by using the MainDataSource property.

This member can be accessed only by forms running in the same domain as the currently open form, or by forms that have been granted cross-domain permissions.

This type or member can be accessed from code running in forms opened in Microsoft InfoPath Filler or in a Web browser.

In the following code example, the DataSources property of the XmlForm class is used to set a reference to the "CityList" secondary data source.

Dim myDataSource As DataSource = Me.DataSources("CityList")

In the following code example, which implements an event handler for a Button control on a form, the DataSources property of the XmlForm object is used to set a reference to the DataSourceCollection of the form. The code loops through the collection and displays the positional index and name of each DataSource object that it contains.

Public Sub CTRL1_Clicked(ByVal sender As Object, _
   ByVal e As ClickedEventArgs)
   ' Set a reference to the DataSources collection.
   Dim myDataSources As DataSourceCollection = Me.DataSources

   ' Loop through the collection and display the name
   ' of each DataSource object that it contains.
   Dim i As Integer
   For i = 0 To myDataSources.Count - 1
      MessageBox.Show("Data source " & i & ": " _
         & myDataSources(i).Name)
   Next
End Sub
Show: