DataRecordsets.Add メソッド (Visio)
OLEDB または ODBC データ ソースに接続してデータを取得することで、DataRecordset オブジェクトを DataRecordsets コレクションに追加します。
注:
この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。
構文
式。Add (ConnectionIDOrString、 CommandString、 AddOptions、 Name)
式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 の図形にリンクできないデータ ソースの列を削除するため、結果をフィルター処理します。 特に、バイナリ データや UserDefined、 Chapter、 IDispatch などの難解なデータ型をインポートすることはできません。
データ レコードセットの各行に行 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 のサポートおよびフィードバックを参照してください。