本例要实现的是如何创建一个单独的DBF文件。
l 要点
首先设定DBF文件的字段个数,再创建新的IField对象,生成新字段,设置其属性,再加入到IFields对象中,最后用IFeatureWorkspace.CreateTable方法创建一个新的DBF文件并返回ITable对象。
主要用到IField接口,IFieldEdit接口,IFields接口,IFieldsEdit接口。
l 程序说明
函数CreateDBF根据输入的路径和文件名创建一个DBF文件并返回一个ITable对象。
l 代码
|
Private Function CreateDBF (sFilePath As String, sFileName As String) As ITable 'createDBF: simple function to create a DBASE file. 'note: the name of the DBASE file should not contain the .dbf extension On Error GoTo ErrorHandler: Dim pFeatureWorkspace As IFeatureWorkspace Dim pWorkspaceFactory As IWorkspaceFactory Dim FileFolder As New scripting.FileSystemObject Dim pFieldsEdit As esriCore.IFieldsEdit Dim pFieldEdit As esriCore.IFieldEdit Dim pFields As IFields Dim pField As IField Dim sDir As String 'Open the Workspace Set pWorkspaceFactory = New ShapefileWorkspaceFactory If Not FileFolder.FolderExists(sFilePath) Then MsgBox "路径不存在" & vbCr & sFilePath Exit Function End If sDir = Dir(sFilePath & sFileName & ".dbf") If (sDir <> "") Then MsgBox ("文件已存在") Exit Function End If Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile(sFilePath, 0) 'if a fields collection is not passed in then create one 'create the fields used by our object Set pFields = New esriCore.Fields Set pFieldsEdit = pFields pFieldsEdit.FieldCount = 6 'Create text Fields Set pField = New Field Set pFieldEdit = pField With pFieldEdit .Name = "SmallInteger" .Type = esriFieldTypeSmallInteger End With Set pFieldsEdit.Field(0) = pField Set pField = New Field Set pFieldEdit = pField With pFieldEdit .Name = "Integer" .Type = esriFieldTypeInteger End With Set pFieldsEdit.Field(1) = pField Set pField = New Field Set pFieldEdit = pField With pFieldEdit .Name = "Single" .Type = esriFieldTypeSingle End With Set pFieldsEdit.Field(2) = pField Set pField = New Field Set pFieldEdit = pField With pFieldEdit .Precision = 5 .Scale = 5 .Name = "Double" .Type = esriFieldTypeDouble End With Set pFieldsEdit.Field(3) = pField Set pField = New Field Set pFieldEdit = pField With pFieldEdit .Length = 30 .Name = "String" .Type = esriFieldTypeString End With Set pFieldsEdit.Field(4) = pField Set pField = New Field Set pFieldEdit = pField With pFieldEdit .Name = "Date" .Type = esriFieldTypeDate End With Set pFieldsEdit.Field(5) = pField Set createDBF = pFeatureWorkspace.CreateTable(sFileName, pFields, Nothing, Nothing, "") sDir = Dir(sFilePath & sFileName & ".dbf") If (sDir <> "") Then MsgBox ("Build Success") Else MsgBox ("Build Fail") End If Exit Function ErrorHandler: MsgBox Err.Description End Function Private Sub UIButtonControl1_Click() Dim pVBProject As VBProject Dim pTable As ITable On Error GoTo ErrorHandler: Set pVBProject = ThisDocument.VBProject 'Dont include .dbf extension Set pTable = CreateDBF (pVBProject.FileName & "\..\..\..\.." & "\data\", "MyDBFFile") Exit Sub ErrorHandler: MsgBox Err.Description End Sub |


当前位置: