Sure,
To be honest I based my function on the following code http://msdn2.microsoft.com/en-us/library/ms429658.aspx
But here is my function :-
Public Shared Function GetListItem(ByVal ListGUID As String, _
ByVal ListItemID As String, _
ByVal ListSiteURL As String, _
ByVal ReturnFieldList As ArrayList) As XmlNode
'Declare and initialize a variable for the Lists Web service.
Dim listService As New SharepointServer.Lists()
Dim sFieldList As New StringBuilder
'Authenticate the current user by passing their default
'credentials to the Web service from the system credential cache.
listService.Credentials = System.Net.CredentialCache.DefaultCredentials
'Set the Url property of the service for the path to a subsite.
listService.Url = ListSiteURL
'Instantiate an XmlDocument object.
Dim xmlDoc As New System.Xml.XmlDocument()
'Assign values to the string parameters of the GetListItems method, 'using GUIDs for the listName and viewName variables. For listName, 'using the list display name will also work, but using the list GUID
'is recommended. For viewName, only the view GUID can be used.
'Using an empty string for viewName causes the default view
'to be used.
Dim listName As String = ListGUID ' "{2D0B4CF8-0A1F-4FAC-83BA-C9278EB9C711}"
Dim viewName As String = String.Empty
Dim rowLimit As String = "150"
'Use the CreateElement method of the document object to create 'elements for the parameters that use XML.
Dim query As System.Xml.XmlElement = xmlDoc.CreateElement("Query")
Dim viewFields As System.Xml.XmlElement = xmlDoc.CreateElement("ViewFields")
Dim queryOptions As System.Xml.XmlElement = xmlDoc.CreateElement("QueryOptions")
'To specify values for the parameter elements (optional), assign CAML fragments to the InnerXml property of each element.
query.InnerXml = "<Where><Eq><FieldRef Name=""Title"" />" _
& "<Value Type=""Text"">" + ListItemID + "</Value></Eq></Where>"
For x As Integer = 0 To ReturnFieldList.Count - 1
sFieldList.Append("<FieldRef Name=""" & ReturnFieldList.Item(x) & """ />")
Next
viewFields.InnerXml = sFieldList.ToString
queryOptions.InnerXml = ""
Try
'Declare an XmlNode object and initialize it with the XML response 'from the GetListItems method. The last parameter specifies
'the GUID of the Web site containing the list. Setting it to
'Nothing causes the Web site specified by the Url property
'to be used.
Dim nodeListItems As System.Xml.XmlNode = listService.GetListItems(listName, viewName, query, viewFields, rowLimit, queryOptions, Nothing)
Return nodeListItems
Catch ex As System.Web.Services.Protocols.SoapException
Return Nothing
End Try
Return Nothing
End Function
Once this is on the web server you can add the web service as a secondary data source.
Hope this helps and let me know if you need anything else and I try to help.
Paul