次の方法で共有


DataRecordsets.Add メソッド (Visio)

OLEDB または ODBC データ ソースに接続してデータを取得することで、DataRecordset オブジェクトを DataRecordsets コレクションに追加します。

注:

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

構文

Add (ConnectionIDOrStringCommandStringAddOptionsName)

DataRecordsets オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
ConnectionIDOrString 必須 バリアント型 新しいデータ ソース接続を指定する既存の DataConnection オブジェクトまたは接続文字列の ID。
CommandString 必須 String データベース テーブルまたは Excel ワークシートを指定するクエリ文字列および照会するデータを含むテーブルまたはワークシート内のフィールド (列) です。
AddOptions 必須 Long 追加するデータのレコードセットのプロパティを指定するオプションです。 VisDataRecordsetAddOptions からの 1 つ以上の列挙値の組み合わせ。 詳細については、「備考」を参照してください。
名前 省略可能 String 追加する DataRecordset オブジェクトの表示名を割り当てます。

戻り値

DataRecordset

注釈

ConnectionIDOrString パラメーターに渡す適切な接続文字列は、Visio ユーザー インターフェイス (UI) でデータ選択ウィザードを使用して同じ接続を作成し、ウィザードの実行中にマクロを記録し、マクロ コードから接続文字列をコピーすることによって特定できます。

既存のデータ接続を再利用する簡単な方法は、ConnectionIDOrString パラメーターに既存の DataRecordset オブジェクトの DataConnection プロパティ値を渡すことです。 次の構文を使用してください。

NewDataRecordset  = DataRecordsets.Add(ExistingDataRecordset .DataConnection.ID, CommandString, AddOptions, Name)

ConnectionIDOrString パラメーターに対しては、現在は他の 1 つ以上のデータ レコードセットによって使用されている既存の DataConnection オブジェクトの ID を渡すと、すべてのデータ レコードセットがトランザクション処理されたグループ レコードセットになります。 グループのすべてのデータ レコードセットは、データ更新操作が実行されるたびに更新されます。

AddOptions パラメーターは、Visio タイプ ライブラリで宣言される VisDataRecordsetAddOptions 列挙から取得される以下の値の 1 つ以上の組み合わせになります。 既定値はゼロ (0) で、どのオプションも設定されません。

定数 説明
visDataRecordsetNoExternalDataUI 1 新しいデータ レコードセットのデータは [外部データ] ウィンドウに表示されません。
visDataRecordsetNoRefreshUI 2 データ レコードセットは [最新のデータに更新] ダイアログ ボックスに表示されません。
visDataRecordsetNoAdvConfig 4 データ レコードセットは [データ更新の構成] ダイアログ ボックスに表示されません。
visDataRecordsetDelayQuery 8 データ レコードセットは追加されますが、次回 Refresh メソッドを呼び出すまで CommandString クエリは実行されません。
visDataRecordsetDontCopyLinks 16 データ レコードセットを追加しますが、図形がコピーまたは切り取られた場合、図形データ リンクはクリップボードにコピーされません。

一度割り当てた値は、DataRecordset オブジェクトが存在する間は変更することができません。

Name パラメーターは、データ レコードセットに表示名を割り当てるための文字列です (省略可能)。 [外部データ] ウィンドウを Visio UI に表示するように指定している場合、この引数によって渡される名前が追加したデータ レコードセットに対応する [外部データ] ウィンドウのタブに表示されます。

Add メソッドが成功すると、次のアクションが実行されます。

  • DataRecordset オブジェクトを作成し、Name パラメーターに指定されている名前を割り当てます。 名前を指定しない場合、Visio はデータ レコードセットに、データのソースであるデータベース テーブルの名前を割り当てます。

  • 新規または既存の DataConnection オブジェクトに DataRecordset オブジェクトを関連付けます。

  • visDataRecordsetNoExternalDataUI が設定されていない場合は、Visio UI で [外部データ] ウィンドウを開きます。

AddOptions パラメーターの一部として visDataRecordsetDelayQuery を渡さない場合、Add メソッドは次の操作を実行します。

  • CommandString パラメーターで指定されたクエリ文字列を実行し、結果のデータを取得します。

  • データ ソースの列のデータ型を対応する Visio データ型にマップします。同時に、対応する Visio データ型を持たないために Visio の図形にリンクできないデータ ソースの列を削除するため、結果をフィルター処理します。 特に、バイナリ データや UserDefinedChapterIDispatch などの難解なデータ型をインポートすることはできません。

  • データ レコードセットの各行に行 ID を割り当てます。 行 ID の詳細については、「 DataRecordset.GetDataRowIDs 」トピックを参照してください。

注:

ネットワーク接続エラー、ネットワーク タイムアウト、またはデータベース アクセス許可エラーが発生すると、Add メソッドは失敗し、例外を返します。 visDataRecordsetDelayQuery オプションが設定されている場合、Add メソッドは同じ状況で新しいデータ レコードセットを正常に追加できますが、リフレッシュには失敗します。

次の Microsoft Visual Basic for Applications (VBA) マクロは、Visio を既定のファイル パスにインストールした場合に、Add メソッドを使用して Visio 図面を ORGDATA.XLS (C:\Program Files\Microsoft Office\OFFICE12\SAMPLES\1033\ にインストールされている Microsoft Office Excel ブック) のデータに接続する方法を示します。

この例では、既存のデータ接続がないため、 Add メソッドの最初のパラメーターに strConnection 、接続文字列を渡します。 2 番目のパラメーターでは、 コマンド文字列 strCommand を渡します。この文字列は、指定したワークシートからすべての列を選択するように Visio に指示します。 Add メソッドの 3 番目のパラメーターでは、データ レコードセットの既定の動作を指定するために 0 を渡し、最後のパラメーターには"Org Data" (データ レコードセットに割り当てる表示名) を渡します。

Public Sub AddDataRecordset_Example() 
 
    Dim strConnection As String 
    Dim strCommand As String 
    Dim strOfficePath As String 
    Dim vsoDataRecordset As Visio.DataRecordset 
 
    strOfficePath = Visio.Application.Path     
    strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" _ 
                       & "User ID=Admin;" _ 
                       & "Data Source=" + strOfficePath + "SAMPLES\1033\ORGDATA.XLS;" _ 
                       & "Mode=Read;" _ 
                       & "Extended Properties=""HDR=YES;IMEX=1;MaxScanRows=0;Excel 12.0;"";" _ 
                       & "Jet OLEDB:Engine Type=34;" 
 
    strCommand = "SELECT * FROM [Sheet1$]" 
 
    Set vsoDataRecordset = ActiveDocument.DataRecordsets.Add(strConnection, strCommand, 0, "Org Data") 
 
End Sub

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

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