如何删除字段
本例实现的是如何在一个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 |
浙公网安备 33010602011771号