IDataStatics の利用

投稿日:2016/9/1 (木) 更新日:

Public Sub TheMacro()
    Dim pMxDocument As IMxDocument
    Set pMxDocument = ThisDocument
    Dim pFeatureLayer As IFeatureLayer
    Set pFeatureLayer = pMxDocument.FocusMap.Layer(0)
    Dim pDataset As IDataset
    Set pDataset = pFeatureLayer.FeatureClass
    Dim pFields As IFields
    Set pFields = ValidateFields(pDataset.Workspace, pFeatureLayer.FeatureClass.Fields)
End Sub
Public Function ValidateFields(pWorkspace As IWorkspace, pFields As IFields) As IFields
    'Create a new field checker and validate the fields.
    Dim pFieldChecker As IFieldChecker
    Set pFieldChecker = New FieldChecker
    Dim pValidatedFields As IFields
    Dim pEnumFieldError As IEnumFieldError
    Set pFieldChecker.ValidateWorkspace = pWorkspace
    pFieldChecker.Validate pFields, pEnumFieldError, pValidatedFields
    Dim pFieldError As IFieldError
    Dim pField As IField
    'Display any errors that were found.
    If Not pEnumFieldError Is Nothing Then
        Set pFieldError = pEnumFieldError.Next
        Do Until pFieldError Is Nothing
            Set pField = pFields.Field(pFieldError.FieldIndex)
            Debug.Print pField.Name, pFieldError.FieldError
            Set pFieldError = pEnumFieldError.Next
    End If
'    Dim pSqlKeywordDictionary As ISqlKeywordDictionary
'    Set pSqlKeywordDictionary = pFieldChecker.ValidateDictionary
'    Dim lngCount As Long
'    Dim blnResult As Boolean
'    blnResult = pSqlKeywordDictionary.Count(lngCount)
'    Debug.Print lngCount
'    Dim i As Long
'    For i = 0 To pSqlKeywordDictionary.Count(lngCount) - 1
'        Debug.Print pSqlKeywordDictionary.Name
'    Next i
    Set ValidateFields = pValidatedFields
End Function


-プログラミング, ArcGIS
-, ,

Copyright© WINGFIELD since1981 , 2019 All Rights Reserved.