AO入门篇:《创建一个dbf文件 》(Create a new dBASE table )

Public Function createDBF(strName As String, _
                          strFolder As String, _
                 Optional pFields As IFields) As ITable
' createDBF: simple function to create a DBASE file.
' note: the name of the DBASE file should not contain the .dbf extension
' Email to me :cnwangyx@163.com
  On Error GoTo EH
  
  ' Open the Workspace
  Dim pFWS As IFeatureWorkspace
  Dim pWorkspaceFactory As IWorkspaceFactory
  Dim fs as object
  Dim pFieldsEdit As IFieldsEdit
  Dim pFieldEdit As IFieldEdit
  Dim pField As IField

  Set pWorkspaceFactory = New ShapefileWorkspaceFactory
  Set fs = CreateObject("Scripting.FileSystemObject")
  If Not fs.FolderExists(strFolder) Then
    MsgBox "Folder does not exist: " & vbCr & strFolder
    Exit Function
  End If

  Set pFWS = pWorkspaceFactory.OpenFromFile(strFolder, 0)
  
  ' if a fields collection is not passed in then create one
  If pFields Is Nothing Then
    ' create the fields used by our object
    Set pFields = New Fields
    Set pFieldsEdit = pFields
    pFieldsEdit.FieldCount = 1
    
    'Create text Field
    Set pField = New Field
    Set pFieldEdit = pField
    With pFieldEdit
        .Length = 30
        .Name = "TextField"
        .Type = esriFieldTypeString
    End With
    Set pFieldsEdit.Field(0) = pField
  End If
  
  Set createDBF = pFWS.CreateTable(strName, pFields, Nothing, Nothing, "")
  
  Exit Function
EH:
    MsgBox Err.Description, vbInformation, "createDBF"

End Function
使用注意:
'参数strName和strFolder是必需的。
'要注意在这个方法中,pFieldsEdit.FieldCount必须和后面添加的field数目相同,否则会出现错误。
'在一些项目中,会要求对已有的属性表进行统计分析,生成统计结果,如果要求是dbf格式,
'大家可以用这个方法生成统计结果表。
'第一、第二个参数是必须的。同样,大家可以根据需要,改写此方法,参数中可以传入如FieldCount
'等在调用此方法前,已经经过计算得到的一些值。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值