Bamboocha_10
Mitglied
Folgendes Problem
Ich programmiere mit VB 6.0. ein Programm mit dem ich auf ArcMap von Esri zugreifen möchte. Das Problem ist, dass die Datentypen (siehe Code) nicht erkannt werden.
Nutze ich das VBA Tool in ArcMap (leider nur VB 4), funktioniert folgender Programmcode:
(Das ich diese Dinge auch über Recordsets machen kann, weiß ich, aber es sollen weitere Dinge gemacht werden, die nicht über RS funktionieren.)
Im VB 6.0 geht das leider nicht
Fehlermeldung: "Fehler beim Kompilieren. Benutzerdefinierter Typ nicht definiert.
Ich könnte mir als Lösung folgende Dinge vorstellen:
- über Projekt - Verweise etwas von ESRI hinzufügen (doch woher weiss ich was)
- Klassen definieren (wie das geht weiss ich allerdings überhaupt nicht)
Ich würde mich freuen, wenn mir jemand in irgendeiner Form auf die Sprünge helfen kann. Auch Denkanstöße sind willkommen! Aber bitte berücksichtigt, dass ich noch nicht sehr fit bin im Programmieren.
Ich programmiere mit VB 6.0. ein Programm mit dem ich auf ArcMap von Esri zugreifen möchte. Das Problem ist, dass die Datentypen (siehe Code) nicht erkannt werden.
Nutze ich das VBA Tool in ArcMap (leider nur VB 4), funktioniert folgender Programmcode:
Code:
'Geodataset --> Feature Dataset --> Liste aller FeatureClasses in einem Dataset
'Zugriff auf das Network
Dim strMDBFile As String
Dim aoiAccFact As IWorkspaceFactory
Dim aoiAccWsp As IFeatureWorkspace
Dim aoiDataset As IFeatureDataset
Dim aoiEnum As IEnumDataset
Dim aoiFDataset As IDataset
Dim strList As String
' Pfad zur Access-Datenbank festlegen...
strMDBFile = "D:\Studium\Masterarbeit\Plan Zossen\GeoDb_street_Network.mdb"
' AccessWorkspaceFactory erzeugen ...
Set aoiAccFact = New AccessWorkspaceFactory
' Verweis auf die IWorkspace-Schnittstelle ...
Set aoiAccWsp = aoiAccFact.OpenFromFile(strMDBFile, 0)
' FeatureDataset "water" öffnen ...
Set aoiDataset = aoiAccWsp.OpenFeatureDataset("network_dataset")
' Liste aller FeatureClasses
Set aoiEnum = aoiDataset.Subsets
' Schleife durch alle Objekte der Liste ...
aoiEnum.Reset
Set aoiFDataset = aoiEnum.Next
Do While Not aoiFDataset Is Nothing
strList = strList & aoiFDataset.Name & Chr(13)
Set aoiFDataset = aoiEnum.Next
Loop
MsgBox "Liste der Feature Classes im Dataset street_network " & strList
'Pfad auf der CD: Die Geodatabase -->
'Table --> Dataset --> Anzahl der Felder in einer Tabelle
'abgewandelter Code für den Zugriff auf die Feature Classes
Dim aoiTable As IClass
'ITable-Schnittstelle auf die Tabelle in der Geodatabase
Set aoiTable = aoiAccWsp.OpenFeatureClass("streets")
'Anzahl der Felder in der Table
MsgBox "Anzahl der Felder Straßen_Poly (Feature Class) " & aoiTable.Fields.FieldCount
End Sub
(Das ich diese Dinge auch über Recordsets machen kann, weiß ich, aber es sollen weitere Dinge gemacht werden, die nicht über RS funktionieren.)
Im VB 6.0 geht das leider nicht
Fehlermeldung: "Fehler beim Kompilieren. Benutzerdefinierter Typ nicht definiert.
Ich könnte mir als Lösung folgende Dinge vorstellen:
- über Projekt - Verweise etwas von ESRI hinzufügen (doch woher weiss ich was)
- Klassen definieren (wie das geht weiss ich allerdings überhaupt nicht)
Ich würde mich freuen, wenn mir jemand in irgendeiner Form auf die Sprünge helfen kann. Auch Denkanstöße sind willkommen! Aber bitte berücksichtigt, dass ich noch nicht sehr fit bin im Programmieren.