重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

ACCESS VBAでのフォームのコピー
OS;WinXP,ACCESS2000

以下のデータベースファイル(ファイルAとする)がある。
テーブル:生産量テーブル
フォーム:閲覧フォーム、転送フォームA

生産者テーブルは、毎日のデータを蓄えるもので1か月分ある。
閲覧フォームは、生産量テーブルのデータを見やすく整えたフォーム。
生産量テーブルは1カ月分しかないため、次の月になったら生産量テーブルから
所定のレコード(月によって変わる)のみ抜き出した新しいテーブルBを作成する。
そして新たにデータベースファイルBをVBAで作成し、DoCmd.ObjectCopyで、
ファイルAからファイルBにテーブルBと閲覧フォーム、転送フォームAを
コピーしようと考えた。

(1):しかし、転送フォームA上でVBAを用いてコピーしようとすると、
転送フォームAのみ、フォームが開いているのでコピーができない旨のエラーが出る。

(2):転送フォームAを転送フォームBと名前を変えてコピーすることはできるが、
ファイルBを開いたときに名前を転送フォームAに自動で戻さなければならない。
(手動で戻すことはできないとお考えください)

(3):(2)の変形版で、ダミーテーブルをコピー時に作ってファイルBに送信し、
ファイルBを開いたときにダミーテーブルがあればこれを消して転送フォームBを
転送フォームAに名称変更することも考えたが、ダミーテーブルがあるか否かを
判定する関数(if文とかと同時使用することとなるだろうが…)がわからない。

長文になってしまいましたが、どなたか知恵をお貸しください。

A 回答 (1件)

>生産量テーブルは1カ月分しかないため、次の月になったら生産量テーブルから


>所定のレコード(月によって変わる)のみ抜き出した新しいテーブルBを作成する。
>そして新たにデータベースファイルBをVBAで作成し、DoCmd.ObjectCopyで、
>ファイルAからファイルBにテーブルBと閲覧フォーム、転送フォームAを
>コピーしようと考えた。

この部分のいきさつが分かりにくいのですが、
(1)(2)(3)の中で、(2)がクリアできれば
限りなく解決と考えていいのでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!