テーブルやクエリーまたはレコードセットなどのさまざまなオブジェクトのコピー
を"CopyObject/オブジェクトのコピー" アクションを用いて行います。
この アクションはDoCmdオブジェクトのCopyObjectメソッドで行います。この
CopyObjectメソッドの引数にコピー先のデータベースやコピーしたいオブジェクト
を指定することで可能となります。
用途としては同じような構造を持つテーブルやクエリーをすばやく作りたいときや、
バックアップなどに使えます。
書式は以下のようになり、
DoCmd.CopyObject [destinationdatabase][, newname][, sourceobjecttype, sourceobjectname]
第1引数のdestinationdatabaseにコピー先のデータベースのパスを指定します。同じ
データベース内でコピーを行う時は省略できます。また、第3引数のsourceobjecttype
にはコピー対象のオブジェクトの種類を指定します。
指定可能なオブジェクトは以下のとおりです。
acDefault (既定値)
acForm
acMacro
acModule
acQuery
acReport
acTable
サンプルコードではDドライブにある「Northwind.mdb」の「社員」テーブルを同じ
データベース内にコピーしています。
● サンプル ●
Private Sub CopyObject()
Dim objAccess As Access.Application
Set objAccess = New Access.Application
' データベースを指定
objAccess.OpenCurrentDatabase "d:\Northwind.mdb"
' テーブルを複製
objAccess.DoCmd.CopyObject , "new社員", acTable, "社員"
' オブジェクトを閉じる
objAccess.CloseCurrentDatabase
objAccess.Quit
Set objAccess = Nothing
End Sub
● 動作確認 ●
テーブルに「new社員」が作成されていることを確認してください。
● 補足説明 ●
上記の処理はマクロのアクション「オブジェクトのコピー」を使用しても可能です。
|