| Platform SDK: Exchange 2000 Server |
[This is preliminary documentation and subject to change.]
This example demonstrates how you can obtain all field names and values for each record in a recordset.
Dim Rec
Dim Rs
Dim strSource
Dim strQ
Dim fld
Dim flds
Dim iX
Dim DomainName
Dim strLocalPath
'specify your own domain
DomainName = "microsoft.com"
'specify a URL to folder or item
strLocalPath = "mbx/user1/inbox"
Set Rec = CreateObject("ADODB.Record")
Set Rs = CreateObject("ADODB.Recordset")
'source URL
strSource = "file://./backofficestorage/" & DomainName & "/" & strLocalPath
Rec.Open strSource
'Construct the SQL query to run on the folder --
'To avoid confusion in escaping quotes,
'Chr(34)'s are used to delimit the URL
strQ = "select *"
strQ = strQ & " from scope ('shallow traversal of "
strQ = strQ & Chr(34) & strSource & Chr(34) & "')"
Rs.Open strQ, Rec.ActiveConnection
Rs.MoveFirst
iX = 1
Response.Write "<FONT FACE=ARIAL SIZE=2>"
While Not Rs.EOF
Response.Write "<b>RECORD: " & iX & "</b> -------------------------------<br>"
Set flds = Rs.Fields
For Each fld in Flds
Response.Write fld.Name & "<br>"
Response.Write " " & fld.Value & "<br>"
Response.Write "</p>"
Next
iX = iX + 1
Rs.MoveNext
Wend
Rs.Close
Rec.Close
The following routines print field names and values for an ADO Record object and a CDO Message object.
Sub EnumerateCollectionRecord(strURL As String)
Dim Rec As New ADODB.Record
Dim x As Integer
'assume strURL contains a valid URL
Rec.Open strURL
For x = 0 To Rec.Fields.Count - 1
Debug.Print Rec.Fields(x).Name
Debug.Print Rec.Fields(x).Value
Debug.Print "---"
Next
End Sub
Sub EnumerateCollectionMessage(strURL As String)
Dim iMsg As New CDO.Message
Dim x As Integer
'open with the passed URL variable
iMsg.DataSource.Open strURL
For x = 0 To iMsg.Fields.Count - 1
Debug.Print iMsg.Fields(x).Name
Debug.Print iMsg.Fields(x).Value
Debug.Print "---"
Next
End Sub