Accessファイルのオブジェクトを一括エクスポートする方法

このQ&Aのポイント
  • Accessのファイルが複数ある場合、特定のファイルから他のファイルへオブジェクトをエクスポートする方法について質問です。
  • 既存のマクロやデータベース変換を使用してオブジェクトをコピーすることは試しましたが、レポートのエクスポートに問題が発生しています。
  • マクロを使用してファイルをインポートする方法も検討しましたが、ユーザーがオブジェクトを変更した場合に問題が発生する可能性があります。解決策を教えてください。
回答を見る
  • ベストアンサー

別ファイル上でオブジェクトを一度にエクスポートするには?

【Win98/Access97】 お世話になります。 早速質問ですが、AccessのファイルがFileA,FileB,FileCと3つあるとして、 FileC上から実行をかけると、FileBの全てのオブジェクトがFileAへエクスポ ートされるようなしかけを作ることはできるでしょうか? マクロを作成してデータベース変換やオブジェクトのコピーなどを試してみましたが、 いずれもテーブルやフォームは問題ないものの、レポートが「無効な参照」と出てしまってエクスポートできません。 取りこみたいファイルにマクロを作ってインポートする方法はできないことも ありませんが、オブジェクトを手で消されたりすると困るので、できるだけ ユーザーに中を触らせたくありません。 よい方法がありましたら教えて下さい。

  • NKNK
  • お礼率53% (8/15)

質問者が選んだベストアンサー

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

>ということは、FileBに直接自身のオブジェクトをFileAに掃き出す処理を入れてもできるということですよね。 データベース変換コマンドは、 「現在開いているDBに、別のDBのオブジェクトを取り込む」(インポート)と、 「現在開いているDBのオブジェクトを別のDBに書き出す」(エクスポート)の二つに機能しか含まれないみたいです。 「別のDBのオブジェクトを別のDBにコピーする」処理を行うためには、#1のマクロでの処理のように、一度ワンクッションを入れてから処理を行うしかないみたいです。 #1のVBAでの処理では、 1:Accessをもう一つ('FileB'という名前で)起動する 2:'FileB'上で、FileB.MDBを開く 3:'FileB'に対して「テーブル『T1』をFileC.MDBにエクスポートせよ」という命令を発する ってな感じで、中間オブジェクトを経由することなくオブジェクトのコピー処理を実現しているわけです。 「マクロでやるとすれば」とは処理的に異なることを書いてしまっていたので、少し混乱させてしまったかもしれません。 >データベース変換でレポートもエクスポートできますか? できますよん。 マクロでするなら、「オブジェクトの種類」の欄を「レポート」にすればいいです。 VBAの場合ですと、 FileB.DoCmd.TransferDatabase acExport, "Microsoft Access", "X:\XXX\FileA.MDB", acReport, "Report1", "Report1" みたいな感じにすればいいです。

NKNK
質問者

お礼

細かいアドバイスありがとうございました。 試しにVBAでちょっとやってみます。

その他の回答 (1)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

えっと、もしマクロでやるとすれば、 1:FileB.MDBのオブジェクトをFileC.MDBにインポート 2:インポートしたオブジェクトをFileA.MDBにエクスポート 3:FileC.MDB上のオブジェクトを削除する という手順で出来ると思います。 VBAでするなら、 Private Sub コマンド0_Click()  Dim FileB As New Access.Application  FileB.OpenCurrentDatabase "X:\AAA\FileB.MDB"  FileB.DoCmd.TransferDatabase acExport, "Microsoft Access", "X:\AAA\File1.MDB", acTable, "T1"  FileB.CloseCurrentDatabase  FileB.Quit End Sub のような感じで実現できます。

NKNK
質問者

補足

早速のご回答ありがとうございます。 一度FileCに必要なオブジェクトを取りこんでからFileAに掃き出すわけですね。 ということは、FileBに直接自身のオブジェクトをFileAに掃き出す処理を入れてもできるということですよね。 TransferDatabaseコマンドを使っていると言う事は、オブジェクトのコピーではなく、データベース変換を使っていると言う事ですね。 データベース変換でレポートもエクスポートできますか?私がやった時は質問のようなエラーが表示されてダメだったのですが。

関連するQ&A

  • アクセス2000のマクロでエクスポートってありますか?

    アクセスのマクロにはオブジェクトの保存や、フォームを開くなどがありますが、 エクスポートやインポートはありますか? VBAは使えないのですが、よろしくおねがいします。

  • ファイルの結合

    UNIX上で下記のようなfileA、fileBから fileA aaa,aaa,222 aaa,bbb,111 aaa,ccc,333 fileB aaa,aaa,111 aaa,bbb,222 aaa,ccc,333 aaa,ddd,999 下記のようなfileCを作ろうとしています。 fileC aaa,aaa,222 aaa,bbb,111 aaa,ccc,333 aaa,ddd,999 そこで、以下のように一列目と2列目をキーにして、sortすることにしました。 cat fileA fileB | sort -u -k1,2 -t, > fileC すると、fileCは下記のようになりました。(一行目の3列目が222ではなく、111になってしまいました) fileC aaa,aaa,111 aaa,bbb,222 aaa,ccc,333 aaa,ddd,999 キー項目以外はfileAを優先させたいのですが、なにか良い方法はないでしょうか?

  • Business Objectからエクスポート

    すみません、Business Objectを今回初めて使用しました。 レポートで作成したデータをSQL Serverにエクスポートしたいのですが、 エクスポート機能ではローカルにコピーすることしか出来きず、 SQL Serverからローカルにあるデータをインポートしました。 ちょっと面倒くさいので何かよい方法はないかと思っているのですが。。。

  • Access OLEオブジェクト型のフィールドをエクスポートしたい

    Access2002でテーブルのエクスポート/インポート機能を追加しようと考えています。 テーブルにはOLEオブジェクト型のフィールドがあります。 これをExcelにエクスポートしたいのですが、TransferSpreadsheetだと OLEフィールドは空白となってしまいます。 また、ファイルメニューから手動でエクスポートしても同じ結果となります。 OLEオブジェクトはエクスポート(インポート)できないのでしょうか。 「テーブルに画像を保存するのは・・・」とのご意見もあると思いますが、 現在の仕様で変更できないので、それは別としてお願いします。

  • ACCESSのクエリを使用してデータ更新したい

    Office2010のAccessを使用しています。 以下のようなことをしたいのですが、どのようにクエリを設定すればよいか教えてください。 処理内容は、FileAに対してKeyマッチするFileBの2項目に更新し、FileCを出力する。 FileA:メンテナンス前データ FileB:更新データ FileC:メンテナンス後データ FileA:固定長のテキストデータ Key(7桁)+金額1(8桁)+金額2(8桁)+区分(2桁) ※金額1(前ブランク埋めのカンマ編集) ※金額2(前ゼロ埋め) FileB:カンマ区切りのテキストデータ Key(7桁)+金額1(8桁)+金額2(8桁) 例) FileA 0000001 90,00000090000AA 0000002 90,00000090000AA 0000003 90,00000090000BB FileB 0000002,30000,30000 FileC 0000001 90,00000090000AA 0000002 30,00000030000AA 0000003 90,00000090000BB 初心者なもので、ハードコピーなどで図解解説があれば助かります。 よろしくお願いいたします。

  • ACCESS97のインポート・エクスポートについて

    ACCESS97を使用しています。 インポート・エクスポートについて下記の質問があります。それぞれ  ファイル-外部データの取り込み-インポート  ファイル-名前を付けて保存/エクスポート で実行できます。  また定期的に実行したい場合、フォーム上の操作によって  モジュール(プロシージャ)を実行させ インポート・エクスポートする方法も  見たことがあります。 今回 教えてほしいのは  Q1   ファイルの操作とモジュールの作成以外で    インポート・エクスポート操作   をする方法はあるのかどうか です。    また関連して  Q2 EXCELファイルからインポートすることは可能かどうか  Q3 SLKファイルへエクスポートすることは可能かどうか  教えて頂きたいと思います。

  • アクセスからエクスポートするファイル名に日付を入れたい

    アクセス2003を使用しています。 エクセルからデータをインポートして、データ加工後、エクセルにエクスポートさせるように作成中です。 マクロで エクスポートするファイル名に日付を自動で設定せたいのですが、方法が判りません。 例)処理後20070824.xls  どうか教えてください。よろしくお願いいたします。

  • Open Oficeでアクセスファイルを開きたい

    オープンオフィスでマイクロソフトのアクセス2003のファイルを 開きたいのです。アクセスファイルのテーブルは開くことができた のですが、フォームやレポート、マクロなどがインポートされて いませんでした。どなたか、方法を教えて下さい。 なお、私が作っているアクセスファイルは、初心者でも使いやすい ように、ファイルを開くとフォームが自動的に現れて、処理が簡単に 選択できるようにしています。できればこのままの形で変換 できませんか? よろしくお願いします。

  • アクセスのレプリカについて

     Windows98上でAccess97で作成されたデータベースを 使用しています。最近、Windows2000上でAccess2000が 導入されて、そちらから共有されているmdbを見ようと するとデータベースの変換のウィンドウが現れて、 OKを押すと 「このレプリカ中のローカルのフォーム、レポート、 マクロ、モジュールは変換されません。これらの オブジェクトを保持するには確実に基のレプリカから デザインマスターにインポートしてください」 と言われます。さらにOKを押すと 「このデータベースはAccess7.0/8.0のデザインマスター /レプリカです。」 と言われてしまいます。レポートがないと印刷できないので 変換するのもためらわれます。どうすればAccess2000でも 使える形でマクロやレポートをAccess97から移行できるのか、 教えていただけませんか?

  • ACCESS レポート Filter Nameを使った出力とエクスポート

    またお力をお貸し下さい!! 1つのレポートフォームを使い、 OpenReport メソッドのFilterNameを使い、6種類のレポートを出力しています。 そこで、その6種類をエクスポート(snp)したいのですが、 可能でしょうか?またどのようにしたら良いのでしょうか? 理想としては、 フォーム上のマクロボタン(マクロでもVBでも可)をクリックし、 6つのレポートをエクスポート その後、6つの宛先に添付ファイルとしてE-Mail添付 (E-Mail添付の方法はわかります) というようなことがしたいのです。 横着せずに、それぞれのレポートを作ったほうが良いのでしょうか。。

専門家に質問してみよう