即効テクニック |
●概要● テーブルやクエリまたはレコードセットなどのさまざまなオブジェクトのコピーを"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社員」が作成されていることを確認してください。 ●補足● 上記の処理はマクロのアクション「オブジェクトのコピー」を使用しても可能です。