This example demonstrates the Type property. It is a model of a utility for listing the names and types of a collection, like Properties, Fields, etc.
We do not need to open the Recordset to access its Properties collection; they come into existence when the Recordset object is instantiated. However, setting the CursorLocation property to adUseClient adds several dynamic properties to the Recordset object's Properties collection, making the example a little more interesting. For sake of illustration, we explicitly use the Item property to access each Property object.
'BeginTypePropertyVB Public Sub Main() On Error GoTo ErrorHandler ' recordset variables Dim rst As ADODB.Recordset Dim prop As ADODB.Property ' property variables Dim ix As Integer Dim strMsg As String ' create client-side recordset Set rst = New ADODB.Recordset rst.CursorLocation = adUseClient ' enumerate property types For ix = 0 To rst.Properties.Count - 1 Set prop = rst.Properties.Item(ix) Select Case prop.Type Case adBigInt strMsg = "adBigInt" Case adBinary strMsg = "adBinary" Case adBoolean strMsg = "adBoolean" Case adBSTR strMsg = "adBSTR" Case adChapter strMsg = "adChapter" Case adChar strMsg = "adChar" Case adCurrency strMsg = "adCurrency" Case adDate strMsg = "adDate" Case adDBDate strMsg = "adDBDate" Case adDBTime strMsg = "adDBTime" Case adDBTimeStamp strMsg = "adDBTimeStamp" Case adDecimal strMsg = "adDecimal" Case adDouble strMsg = "adDouble" Case adEmpty strMsg = "adEmpty" Case adError strMsg = "adError" Case adFileTime strMsg = "adFileTime" Case adGUID strMsg = "adGUID" Case adIDispatch strMsg = "adIDispatch" Case adInteger strMsg = "adInteger" Case adIUnknown strMsg = "adIUnknown" Case adLongVarBinary strMsg = "adLongVarBinary" Case adLongVarChar strMsg = "adLongVarChar" Case adLongVarWChar strMsg = "adLongVarWChar" Case adNumeric strMsg = "adNumeric" Case adPropVariant strMsg = "adPropVariant" Case adSingle strMsg = "adSingle" Case adSmallInt strMsg = "adSmallInt" Case adTinyInt strMsg = "adTinyInt" Case adUnsignedBigInt strMsg = "adUnsignedBigInt" Case adUnsignedInt strMsg = "adUnsignedInt" Case adUnsignedSmallInt strMsg = "adUnsignedSmallInt" Case adUnsignedTinyInt strMsg = "adUnsignedTinyInt" Case adUserDefined strMsg = "adUserDefined" Case adVarBinary strMsg = "adVarBinary" Case adVarChar strMsg = "adVarChar" Case adVariant strMsg = "adVariant" Case adVarNumeric strMsg = "adVarNumeric" Case adVarWChar strMsg = "adVarWChar" Case adWChar strMsg = "adWChar" Case Else strMsg = "*UNKNOWN*" End Select 'show results Debug.Print "Property " & ix & ": " & prop.Name & _ ", Type = " & strMsg Next ix ' clean up Set rst = Nothing Exit Sub ErrorHandler: ' clean up Set rst = Nothing If Err <> 0 Then MsgBox Err.Source & "-->" & Err.Description, , "Error" End If End Sub 'EndTypePropertyVB
Property Object | Type Property