HOW TO
Note: This article pertains to ArcGIS versions 8.x and 9.x. Later versions of ArcGIS may contain different functionality, as well as different names and locations for menus, commands and geoprocessing tools.
Below is a sample of how to access a Shapefile with the Name objects (IName).
Note: Support for Visual Basic for Applications (VBA) for ArcMap and ArcCatalog ended with the ArcGIS 10.2.2 release, and Esri has not included VBA compatibility setups since version 10.5. See: ArcGIS Desktop and VBA Moving Forward
The following code shows how to access a Shapefile using the IFeatureClassName interface.
Note: For more information on creating a UIControl, see the ArcGIS Desktop Help topic: 'Creating custom commands with VBA and UI Controls'
''This is how to Use the IWorkspaceName interface to get access to a ShapeFile.
''Users should change the following 2 variables**************
''This is the directory where the ShapeFile lives...
Dim StrPathToDataBase As String
StrPathToDataBase = "H:\ESRIDATA\MEXICO"
''This is the name of the ShapeFile...
Dim StrFeatureClassName As String
StrFeatureClassName = "States"
''****************************************************
''This is the connection information that is used to access the WorkSpace...
Dim ppropset As IPropertySet2
Set ppropset = New PropertySet
ppropset.SetProperty "DATABASE", StrPathToDataBase
Dim pWorkSpaceName2 As IWorkspaceName2
Set pWorkSpaceName2 = New WorkspaceName
''Notice this is a String. The ArcObjects help should have a listing of the
''other types (featureclass, tables, etc etc)
pWorkSpaceName2.WorkspaceFactoryProgID = "esriCore.ShapeFileWorkspaceFactory"
pWorkSpaceName2.ConnectionProperties = ppropset
Dim pname As IName
Set pname = pWorkSpaceName2
Dim pFeatureWorkspace As IFeatureWorkspace
Set pFeatureWorkspace = pname.Open
Dim pfeatureclass As IFeatureClass
'''Look at the IFeatureWorkSpace as you can open Tables, DataSets, etc etc...
'''Below we use IFeatureWorkSpace::OpenFeatureClass to get a FeatureClass...
Set pfeatureclass = pFeatureWorkspace.OpenFeatureClass(StrFeatureClassName)
''Proving you have a featureclass...
MsgBox pfeatureclass.FeatureCount(Nothing)
Article ID: 000005891
Get help from ArcGIS experts
Start chatting now