шейп и база

0 голосов
спросил 24 Ноя, 05 от Гость (210,080 баллов) в категории Программные продукты Esri
почему макрос написанный на vba прекрасно работает со слоями источник которых шейп-файлы и не работают с со слоями иточники которых данные и базы геоданных

4 Ответы

0 голосов
ответил 24 Ноя, 05 от Tatkis (2,420 баллов)
А как Вы к ним обращаетесь? Это важно image
0 голосов
ответил 24 Ноя, 05 от Гость (210,080 баллов)

А как Вы к ним обращаетесь? Это важно image

этот макрос  выдает список отсортированных и уникальных значений поля. может как по другому можно сделать?

Dim pDataStat As IDataStatistics
Dim pEnumVar As IEnumVariantSimple
Dim pStatCursor As ICursor
Dim value As Variant
Dim pMxDoc As IMxDocument
Set pMxDoc = Application.Document
Dim pFeatureLayer As IFeatureLayer
Set pFeatureLayer = pMxDoc.SelectedLayer
Dim pMap As IMap
Set pMap = pMxDoc.FocusMap
Dim pDataset As IDataset
Set pDataset = pFeatureLayer
Dim theFeatureClass As IFeatureClass
Set theFeatureClass = pFeatureLayer.FeatureClass
Dim tb As ITable
Set tb = pMxDoc.SelectedLayer
Dim pQueryFilter As IQueryFilter
Dim pTableSort As ITableSort
Set pQueryFilter = New QueryFilter
pQueryFilter.SubFields = ComboBox2.value
Set pTableSort = New TableSort
With pTableSort
    .Fields = ComboBox2.value
    .Ascending(ComboBox2.value) = True
    Set .QueryFilter = pQueryFilter
    Set .Table = tb
End With
pTableSort.Sort Nothing
Dim pCursor As ICursor
Set pCursor = pTableSort.Rows
Set pRow = pCursor.NextRow
Set pStatCursor = pTableSort.Rows
Set pDataStat = New DataStatistics
pDataStat.Field = ComboBox2.value
Set pDataStat.Cursor = pStatCursor
Set pEnumVar = pDataStat.UniqueValues
    pEnumVar.Reset
    value = pEnumVar.Next
      Do Until IsEmpty(value)
        ComboBox1.AddItem value
        value = pEnumVar.Next
      Loop
Set pDataStat = Nothing
Set pEnumVar = Nothing
Set pStatCursor = Nothing

0 голосов
ответил 25 Ноя, 05 от Гость (210,080 баллов)
help!!!!!!!!!!!!
0 голосов
ответил 28 Ноя, 05 от Tatkis (2,420 баллов)

При работе с БГД необходимо использовать AccessWorkspaceFactory, напрямую указываете путь к источнику данных.

AccessWorkspaceFactory Example

' This example opens a featureclass in a Personal Geodatabase using ' a property set. Dim pPropset As IPropertySet Set pPropset = New PropertySet Dim pFact As IWorkspaceFactory Dim pWorkspace As IWorkspace pPropset.SetProperty "DATABASE", "d:\data\AccessData\SDETest.mdb" Set pFact = New AccessWorkspaceFactory Set pWorkspace = pFact.Open(pPropset, Me.hWnd) Dim pFeatureWorkspace As IFeatureWorkspace Set pFeatureWorkspace = pWorkspace Dim pFeatureClass As IFeatureClass Set pFeatureClass = pFeatureWorkspace.OpenFeatureClass("parcels")

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...