オブジェクトのコピー
 テーブルやクエリーまたはレコードセットなどのさまざまなオブジェクトのコピー
を"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社員」が作成されていることを確認してください。


● 補足説明 ●

上記の処理はマクロのアクション「オブジェクトのコピー」を使用しても可能です。

Access97/2000



戻る


Excel Word Access VBA! モーグ