次の方法で共有


DataRecordset.GetPrimaryKey メソッド (Visio)

データ レコードセットの主キー設定および主キーの列を取得します。

注:

この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。

構文

GetPrimaryKey (PrimaryKeySettings, PrimaryKey())

DataRecordset オブジェクトを返す式。

パラメーター

名前 必須 / オプション データ型 説明
PrimaryKeySettings 必須 VisPrimaryKeySettings 出力パラメーターです。 データ レコードセットの主キー設定を出力します。 設定される値については、「備考」を参照してください。
PrimaryKey() 必須 String 出力パラメーターです。 文字列型 (String) 変数の配列を指定します。

戻り値

なし

解説

GetPrimaryKey メソッドを使用して、データ レコードセットの既存の主キー設定と、主キーが指定されている場合は主キーの列または列の名前を決定します。 PrimaryKeySettings出力パラメーターには、データ レコードセットの主キー設定が VisPrimaryKeySettings 列挙値の値として返されます。 既定値 (主キーが指定されていない場合) は visKeyRowOrder で、Microsoft Visio はデータ レコードセットの行を、その行の順序のまま認識するという意味になります。

主キーが指定されているデータ レコードセットには、単一または複合主キー列を含めることができます。 単一列の主キーは、単一のカラムの値に基づいて行を識別します。 後者の場合、複数の列の組み合わせで、行を一意に識別します。 PrimaryKeySettings に設定される値は、次のとおりです。

定数 説明
visKeyRowOrder 1 主キーとして行の順序を使用します。
visKeySingle 2 主キーの列として単一の列を使用します。
visKeyComposite 3 主キーの列として複数の列を使用します。

PrimaryKey() out パラメーターの場合は、文字列の次元のない配列を渡します。 返される主キー設定が visKeySingle または visKeyComposite の場合、このメソッドは PrimaryKey() out パラメーターの主キー列名文字列の配列も返します。 主キー設定が既定の visKeyRowOrder の場合、空の配列が返されます。

DataRecordset.SetPrimaryKey メソッドを使用して、データ レコードセットの主キー設定と、主キー列または列として設定する列または列の名前を指定します。 主キーを設定する場合は、主キーの列となる 1 つ、または、複数の列には、各行に一意の値が含まれていることを確認してください。

次の Microsoft Visual Basic for Applications (VBA) マクロは、GetPrimaryKey メソッドを使用してデータ レコードセットの主キー設定を取得し、最初の主キーの列の名前を取得します。 マクロは、ドキュメントに関連付けられた最後に作成されたデータ レコードセットを検索し、主キーが指定されている場合は、[イミディエイト] ウィンドウに主キー設定の値と、データ レコードセットの最初の主キー列の名前を出力します。 主キーが存在しない場合は、主キー設定と "No primary key" という文字列を出力します。

このマクロを実行する前に、現在のドキュメントに少なくとも 1 つのデータ レコードセットを作成し、必要な場合は SetPrimaryKey メソッドを使用して主キーを指定します。

Public Sub GetPrimaryKey_Example() 
 
    Dim vsoDataRecordset As Visio.DataRecordset 
    Dim intCount As Integer 
    Dim astrPrimaryKeyColumns() As String 
    Dim vsoKeySettings As VisPrimaryKeySettings 
 
 
    intCount = ThisDocument.DataRecordsets.Count 
    Set vsoDataRecordset = ThisDocument.DataRecordsets(intCount) 
    vsoDataRecordset.GetPrimaryKey vsoKeySettings, astrPrimaryKeyColumns 
 
    If vsoKeySettings = visKeyRowOrder Then 
        Debug.Print vsoKeySettings, "No primary key" 
    Else 
        Debug.Print vsoKeySettings, astrPrimaryKeyColumns(0) 
    End If 
    
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。