如何删除字段

本例实现的是如何在一个FeatureClass中删除一个字段(Field)。

l   要点

定义IField接口实例,并使用Field类实现,使用IFields.FindField方法和IFields.Field方法获得IFeatureClass中要删除的字段,最后用IFeatureClass.DeleteField方法删除字段。

主要用到IFields接口,IField接口和IFeatureClass接口。

l   程序说明

函数OpenFeatureClass获得当前激活的Map中第一层的IFeatureClass接口对象。

函数DeleteField删除pFeatureClass中字段名为NewField的字段。

l   代码

Private Function DeleteField(pFeatureClass As IFeatureClass) As Boolean

    Dim pFields                 As IFields

    Dim pField                  As IField

    Dim lFieldNumber            As Long

On Error GoTo ErrorHandler:

    DeleteField = False

    If (pFeatureClass Is Nothing) Then

        Exit Function

    End If

    Set pFields = pFeatureClass.Fields

    lFieldNumber = pFields.FindField("NewField")

    If (lFieldNumber = -1) Then

        MsgBox ("无此字段")

        Exit Function

    End If

    Set pField = pFields.Field(lFieldNumber)

    pFeatureClass.DeleteField pField

    MsgBox ("已删除字段:" & "NewField")

    DeleteField = True

    Exit Function

ErrorHandler:

    MsgBox Err.Description

End Function

Private Function OpenFeatureClass() As IFeatureClass

    Dim pMxDocument             As IMxDocument

    Dim pMap                    As IMap

    Dim pFeatureLayer           As IFeatureLayer

    Dim pFeatureClass           As IFeatureClass

On Error GoTo ErrorHandler:

    Set OpenFeatureClass = Nothing

    Set pMxDocument = ThisDocument

    Set pMap = pMxDocument.FocusMap

    If (pMap.LayerCount = 0) Then

        MsgBox ("缺少数据")

        Exit Function

    End If

    Set pFeatureLayer = pMap.Layer(0)

    Set pFeatureClass = pFeatureLayer.FeatureClass

    Set OpenFeatureClass = pFeatureClass

    Exit Function

ErrorHandler:

    MsgBox Err.Description

End Function 

Private Sub UIButtonControl1_Click()

On Error GoTo ErrorHandler:

    Dim pFeatureClass        As IFeatureClass

    Set pFeatureClass = OpenFeatureClass()

    DeleteField pFeatureClass

    Exit Sub

ErrorHandler:

    MsgBox Err.Description

End Sub

posted on 2006-09-07 13:19  greatbird  阅读(865)  评论(0)    收藏  举报

导航