カレントデータベース以外のデータベースのテーブルやフォームを、
「DeleteObject/オブジェクトの削除」 アクションを実行するDeleteObjectメソッド
を使って削除します。
他のデータベースを操作するためには、ActiveXオブジェクトへの参照を作成して
返すCreateObject関数を使います。ActiveX オブジェクトを作成するには、
CreateObject関数の戻り値をオブジェクト変数に代入します。
サンプルプロシージャは、カレントデータベースからdb2.mdbのテーブル「テーブル1」
を削除しています。
サンプルプロシージャの実行は、マクロなどを使って行います。
● サンプル ●
Function Sample()
Dim objAcc As Access.Application
Set objAcc = CreateObject("Access.Application")
objAcc.OpenCurrentDatabase "C:\db2.mdb"
objAcc.DoCmd.DeleteObject acTable, "テーブル1"
objAcc.Quit
Set objAcc = Nothing
End Function
● 詳細 ●
CreateObject関数の構文は次のとおりです。
<構文>CreateObject(class,[servername])
指定項目 内容
class 必ず指定します。内部処理形式が文字型(String)のバリアント型
(Variant)の値を指定します。作成するオブジェクトのクラスと
アプリケーションの名前を指定します。
servername 省略可能です。内部処理形式が文字型(String)のバリアント型
(Variant)の値を指定します。作成するオブジェクトを保存する
ネットワークサーバの名前を指定します。ローカルマシンで使用
する場合は、空の文字列 ("") を指定します。
OpenCurrentDatabaseメソッドは、既存のAccessデータベース(.mdb)をカレント
データベースとして開きます。
構文は次のとおりです。
<構文> application.OpenCurrentDatabase dbname[, exclusive]
引数 内容
application Applicationオブジェクトです。
dbname パス名およびファイル名の拡張子を含む、既存のデータベース
ファイルの名前を示す文字列式です。ネットワークパスを指定する
場合は、そのネットワークでサポートされている書式を指定します。
\\Server\Share\Folder\Filename
exclusive データベースを排他モードで開くかどうかを指定するブール型
(Boolean)です。この引数は省略可能です。既定値はFalseで、
データベースは共有モードで開かれます。
DeleteObjectメソッドの構文は、次のとおりです。
<構文> DoCmd.DeleteObject [objecttype][, objectname]
引数 内容
objecttype 次のいずれかの組み込み定数を指定します。
acDataAccessPage
acDefault (既定値)
acDiagram
acForm
acMacro
acModule
acQuery
acReport
acServerView
acStoredProcdure
acTable
objectname 引数objecttypeで選択した種類のオブジェクトの有効な名前を
文字列式で指定します。
DeleteObject メソッドを含むVisual Basicのコードをライブラリ
データベースで実行する場合は、この名前のオブジェクトが、
最初にライブラリデータベースで、次にカレントデータベースで
探索されます。
引数objecttypeおよびobjectnameを指定しないと、objecttypeには定数acDefault
(既定値)が使われ、データベースウィンドウで選択されたオブジェクトがコピーされます。
データベースウィンドウでオブジェクトを選択するには、"SelectObject/オブジェクト
の選択" アクション、または引数In Database WindowにYes(True)を設定した
SelectObjectメソッドを使うことができます。
|