• 締切済み

Accessで、自動的にテーブルを新規作成をする方法。

お世話になっております。 access上で、mainテーブルとsubテーブルを作成するとします。mainとsubの関係は1対∞です。 その時に、mainテーブルにレコードが一つ増えるたびに、subテーブルを新規作成するというVBAはありますか。 その際にリレーションシップも組まれるといいです。 そんなVBAがなくとも、違うやり方で解決できないでしょうか。ご回答お願いします。

みんなの回答

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

普通、この手の入力をする時には、 ・メインフォーム-サブフォーム構造をとる。この場合だと、メインテーブルとサブテーブルの入力を平行して行うことができる。 ・あらかじめメインテーブルをマスタとして作成しておきサブテーブルの入力時にコンボボックスなどを使って、メインテーブルのIDを入力する。 といった方法を使いますよね。 こういう方法では、駄目でしょうか?

  • yousmz
  • ベストアンサー率10% (1/10)
回答No.1

ponponさんはどういう目的でこのようなことをしたいのですか? 通常テーブルのリレーションシップというのはテーブルひとつに対してNこのテーブルということではなく、メインテーブルの1レコードに対してsubテーブルのNレコードということを意味します。 目的がはっきりとわからないので何とも回答できませんが、SUBテーブルのキーの持たせ方で操作するほうがプログラム上も、その後の扱い上も良いと思いますが。

ponpon
質問者

補足

回答ありがとうございます。 おっしゃるとおり、私の考え方がおかしかったようです。 あらかじめ一つのテーブルにIDを振っておいてそこから レコードを取得させていくことで解決できそうなのでやってみます。早とちりをしてしまってすみませんでした。

関連するQ&A

  • ACCESS テーブル作成の日付付与の自動化

    いつもお世話になっております。 ACCESSアクセスのクエリ作成方法をご教示願います。 現在、バックアップ用として、毎日テーブルクエリ作成でテーブルを作成しています。 毎日毎日、その日の日付の入ったバックアップを作っているのですが、ワンクリックで、その日の日付の入ったクエリを作成することは可能でしょうか。 ex)本日4/25であれば、ワンクリック→【バックアップ_110425】TBL作成完了 こうしたことがACCESSで可能かどうか、可能であれば、やり方をご教示頂けないでしょうか。 VBAを記載し添削頂きたいところですが、さっぱり見当がつかないため、VBA表記できませんが、それでも良ければご回答いただけますと有難いです。

  • Accessのテーブルで

    わかる方どうか教えてください。 Accessのテーブルで、ひとつのテーブル内のフィールド欄に”+”ができていて”-”にすると、そのレコードに対するテーブルが表示されるものがあるのですが、それはどのようにして作成しているのでしょうか? 説明が書いてあるHPなどわかる方がいたら教えてください。 よろしくお願いします。

  • ACCESSでcsv テーブルを利用する良い方法は?

    いつもお世話になっています。ACCESS はまったくの素人です。 csv で提供される6種類程度の元データがあり、定期的にファイル単位で更新されます。これを現在はテーブルにリンクしているのですが、処理が重くて困っています。インポートすると劇的に軽くなりますが、元ファイルの更新時に手間が増えて困ります。具体的には再度インポートしてテーブルを上書きするとリレーションシップが切れてしまうので、一度全てのレコードを削除して、新たに全レコードを追加すると言う手順を思い描いています。 このような場合、どうするのが効率的なのでしょうか。よろしくお願いいたします。

  • ACCESSでリンクテーブルを自動的に作る方法

    ACCESS2000のデータベースが2つあって、片方のキャンペーンテーブルが2ヵ月に1度くらい随時増えていくので、もう片方のデータベースにそれに応じてリンクテーブルを自動的に増やしていく仕組みを作りたいと思っております。どなたかACCESS+VBAで良い書き方をご存知の方いらっしゃいましたら教えてください。よろしくお願いします。

  • アクセスVBAでテーブル作成クエリを作れる?

    アクセス97です。 テーブル作成クエリで 他のmdbに テーブルを作成してるのですが 他のmdbのフルパスが固定でなく可変です。 テーブル作成クエリの 他のデータベース名を VBAで変更出来るでしょうか? もしくは VBAでテーブル作成クエリを 作成出来るでしょうか?

  • アクセスVBAでテーブルの参照

    よろしくお願いします。 アクセスVBAでテーブルのレコードを参照をしたいのですが、 どうすればよいのでしょう?

  • Access2003からピボットテーブルの作成

    ACCESSのVBAでピボットテーブルを作成する方法がわかりません。 ACCESSで作成したクエリをそのままデータソースに使用して EXCELの新しいWORKBOOKに出力したいと思っています。 どんな方法でもいいので知っている方がいれば教えていただきたいです。

  • Access のリレーションシップで一部一致

    いつもお世話になっています。 Accessでクエリを作成するにあたり、リレーションシップを設定したいのですが、 一致させるフィールドが「123456/S1234とS1234」,「S001234とS1501234E」,「5678と5678」など、 完全一致するものと一部一致するものが混在しています。 一部一致のものでも、どれと一致させるかを判断することはできるのですが、 この状態では通常のリレーションシップは設定できませんか? 設定できないならば、一度加工して完全一致したテーブルを作成し、 それとリレーションシップをVBAで設定するしかないでしょうか?

  • ACCESSフォームの作成(基本)

    フォームを作成したいのですが、フォームビューを開いても何も表示されないのですが。。。。レコードソースにテーブルを指定してあげると表示されるのですが、作成したクエリーを指定すると表示されません。リレーションシップはちゃんと作ってあります。基本的な質問ですが、ご回答よろしくお願いします。

  • Accessのリレーションシップ

    Access初心者です。 Access2010でデータベースを作っていて、行き詰ってしまいました。 テーブル1にフィールドABCDEFがあって、Aに主キーが付いています。(Aはテキスト型でフィールドサイズ10です。) テーブル2にはフィールドAGHがあり、Aに主キーが付いてます。(Aはテーブル1と同じです。) テーブル3にも同じくフィールドAIJがあり、Aに主キーが付いています。(Aはテーブル1と同じです。) テーブル1のフィールドAを主テーブルとし、テーブル2・3のフィールドAにリレーションを組んでいます。 この時のリレーションシップで参照整合性と連鎖更新と連鎖削除にチェックを入れ、種類が一対一になりました。 その後、テーブル1でレコードを追加しようとすると、「テーブル'2'にリレーションシップが設定されたレコードが必要なので、レコードの追加や変更を行うことができません。」と出ます。 これを解決する方法はどうするのか、お教えお願いします。 分かりにくい説明ですいません。

専門家に質問してみよう