gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1274回复:2

[分享代码]对shape文件添加字段

楼主#
更多 发布于:2005-01-11 19:56
<TABLE width="100%">

<TR>
<TD class=subtitle colSpan=6>内容摘要</TD></TR>
<TR>
<TD class=txt colSpan=6>要求:只能对非加载的shape进行操作,对于加的,必须移除,并且与该层相关的对象必须清空</TD></TR>
<TR>
<TD class=subtitle colSpan=6>过程描述</TD></TR>
<TR>
<TD class=txt colSpan=6>Public Sub FieldAppender(dbPath As String, _
            Filename As String, _
            newFldname As String, _
            NewFldType As String, _
            newFldsize As Integer)
            
 Dim db As Database
 Dim tdf1 As TableDef, tdf2 As TableDef
 Dim ndx1 As Index, ndx2 As Index
 Dim fld1 As DAO.Field, fld2 As DAO.Field
 Dim sql As String
 
 Set db = OpenDatabase(dbPath, False, False, "dBase IV;")
 Debug.Print db.Updatable
 Dim i As Integer
 For i = 0 To db.TableDefs.Count - 1
  If db.TableDefs(i).Name = Filename Then
   Set tdf1 = db.TableDefs(Filename)
  End If
  DoEvents
 Next i
 If tdf1 Is Nothing Then
  MsgBox "没有找到该shapefile文件。", vbOKOnly
  Exit Sub
 End If
 
 For i = 0 To db.TableDefs.Count - 1
  If db.TableDefs(i).Name = "SHENYU" Then
   sql = "Drop Table Shenyu"
   db.Execute sql
  End If
  DoEvents
 Next i
 
 Set tdf2 = New TableDef
 tdf2.Name = "Shenyu"
 
 For Each fld1 In tdf1.Fields
  Set fld2 = New DAO.Field
  fld2.Name = fld1.Name
  fld2.Type = fld1.Type
  fld2.Size = fld1.Size
  tdf2.Fields.Append fld2
  DoEvents
 Next fld1
 
 Set fld2 = New DAO.Field
 
 fld2.Name = newFldname
 fld2.Type = NewFldType
 fld2.Size = newFldsize
 
 tdf2.Fields.Append fld2
 
 db.TableDefs.Append tdf2
 
 sql = "Insert into Shenyu Select * from " ; Filename
 db.Execute sql
 
 Set tdf1 = Nothing
 
 sql = "Drop Table " ; Filename
 db.Execute sql
 
 tdf2.Name = Filename
 
 db.Close
 Set db = Nothing
 Exit Sub
 
ErrorHandler:
 db.Close
 Set db = Nothing
 Exit Sub
End Sub</TD></TR></TABLE>
喜欢0 评分0
GIS麦田守望者,期待与您交流。
blaster
路人甲
路人甲
  • 注册日期2005-02-22
  • 发帖数153
  • QQ
  • 铜币486枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-03-16 12:58
非常感谢!
举报 回复(0) 喜欢(0)     评分
zergs
路人甲
路人甲
  • 注册日期2003-09-01
  • 发帖数113
  • QQ
  • 铜币386枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-04-03 10:39
cool!
举报 回复(0) 喜欢(0)     评分
游客

返回顶部