YouTube | Facebook | X(Twitter) | RSS

IDisplayRelationshipClassを使用したテーブル結合情報の取得

Public Sub GetTableJoinData()
    Dim pMxDocument As IMxDocument
    Set pMxDocument = ThisDocument
    
    Dim pFeatureLayer As IFeatureLayer
    Set pFeatureLayer = pMxDocument.FocusMap.Layer(0)
    
    Dim pDisplayRelationshipClass  As IDisplayRelationshipClass
    Set pDisplayRelationshipClass = pFeatureLayer
    
    Dim pRelationshipClass As IRelationshipClass
    Set pRelationshipClass = pDisplayRelationshipClass.RelationshipClass
    
    
    Dim pDestinationClass As IObjectClass
    Set pDestinationClass = pRelationshipClass.OriginClass
    
    Debug.Print "結合元テーブル名:", pDestinationClass.AliasName
    Debug.Print "結合元フィールド名:", pRelationshipClass.OriginForeignKey
        
    Dim pOriginClass As IObjectClass
    Set pOriginClass = pRelationshipClass.OriginClass
    
    Debug.Print "結合先テーブル名:", pOriginClass.AliasName
    Debug.Print "結合先フィールド名:", pRelationshipClass.OriginPrimaryKey
    
    Dim pDataset As IDataset
    Set pDataset = pOriginClass
    
    Debug.Print "結合先データベースのパス名", pDataset.Workspace.PathName
    
    'DBMS のデータベース名
    If TypeOf pDataset.Workspace Is IDatabaseConnectionInfo Then
        Dim pDatabaseConnectionInfo As IDatabaseConnectionInfo4
        Set pDatabaseConnectionInfo = pDataset.Workspace
        
        Debug.Print pDatabaseConnectionInfo.ConnectedDatabase
    End If
   
End Sub

  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-プログラミング, ArcGIS
-