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) でデータ選択ウィザードを使用して同じ接続を作成し、ウィザードの実行中にマクロを記録し、マクロ コードから接続文字列をコピーすることによって特定できます。
既存のデータ接続を再利用する簡単な方法は、既存の DataRecordset オブジェクトの DataConnection プロパティ値を ConnectionIDOrString パラメーターに渡すことです。 次の構文を使用してください。
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 のサポートおよびフィードバックを参照してください。