<HOME  <お願い事項   <Access2002 TOP   <Access2000 TOP   <サイト内検索
 MS-Access97超入門>アクションクエリ
 準備 更新クエリ 追加クエリ テーブル作成クエリ 削除クエリ



■追加クエリ

さて、更新クエリーで、だいたいアクションクエリーのイメージをつかむことができたのではないかなーと思います。
後はですね、やることが違うだけで、考え方は同じですんで、ささっとやっつけてしまいましょう。

お次はどれいきましょうか。「追加クエリー」にしようかな。

これは、Aのテーブルの中のレコードを、Bのテーブルに追加するという動作をします。

うーん、用途としては・・たとえば売上明細テーブルから今月の売上のレコードを累積テーブルに移すときとか・・・
そういう感じの使われ方が多いですかね。

と、いうことは、追加先のテーブルがいっこいるわけですな。

どうしましょうか・・今は最初に作った練習用のテーブルがいっこあるだけなんですけど・・・。

コピーしたりして作ってもいいんですけど、まあ練習ということで、こんな感じのテーブルいっこ作ってみて下さい。
で、このテーブルにレコードを追加するとしましょう。

追加元と追加先のテーブルは、必ずしも同じレイアウトでなくてもよいです。
フィールド名も揃ってなくてもいいんですが、なるべく揃えた方が、手間が省けていろいろ便利なので、フィールド名は揃えた方が無難ですね。

では追加クエリーを作ります。
慣れるまでちょっとややこしいので、どっちが追加元でどっちが追加先のテーブルか、確認しながら作業してみて下さい。

まず、ふつうにクエリーを新規作成します。基にするのは最初に作った練習用のテーブルの方です。追加元のテーブルですね。

1.フィールドをグリッドに選びます。

追加先のテーブルに追加したいなーと思うフィールドだけ選びます。追加する必要のないフィールドは、別に選ばなくてもいいです。

逆に、追加先のテーブルに当てはまらないフィールドをここで選んでも、追加先がないので意味ないですね。
まあ今日は練習ですから、とりあえず適当に・・・。4つ選びますか。

2.クエリーを追加クエリーにします。

で、さっきいじった「クエリーの種類を変更するツールボタン」を操作して、追加クエリーに変更します。

すると頼んでもいないのに何やらダイアログが出てきて、追加先のテーブル名を指定しなさいと言ってきます。
仕方ないので、一覧からテーブルを選びます。

後から作った追加先のテーブルを指定しましょう。

と、クエリーのデザインの方には、「レコードの追加」という欄が出てきますよね。
今指定した追加先のテーブルの、どのフィールドに追加をするのか、紐付けがなされるわけです。

フィールド名を同じにしておくと、こうやって自動的に結びついてくれますが、[番号]と[コード]とか、名称が異なる場合は、「レコードの追加」欄をクリックして、追加先のフィールドをいっこいっこ手作業で指定してあげます。

「レコードの追加」欄が空白の場合は、なんも追加されませんので、必ずしかるべきフィールド名の指定があるかどうか、確認しましょう。

イメージはこうなりますね。


このクエリーを実行すると、追加先のさっき作ったテーブルの方に、レコードが書き出されて追加されます。

なんかメッセージでますよね。[はい]の方をクリックすると、実行完了です。

じゃ、このクエリーにもなんか名前を付けて保存しておきましょうか。せっかく作ったんだし。名前は何でもいいです。
わかれば。
名前がついたら、クエリーのウィンドウを閉じて一段落です。

さて、それでは追加先のテーブルの方を開いて確認してみて下さい。
レコード、追加されてますか?

このクエリーも繰り返し繰り返し実行すると、がんがんおんなじレコードを追加先テーブルに追加しちゃいますので、取り扱い要注意です。

余談ですけれど、オートナンバー型のフィールドってありますよね。
これ、便利は便利なんですけど、番号の付け方はAccessまかせです。
われわれが入力や変更することのできないフィールドなんですね。
基本的に、1レコードずつ入力したときに、自動的に番号が付くタイプのフィールド型で、私たちが直接入力することはないです。
追加クエリーをつかって追加する、追加元のテーブルには、オートナンバー型のフィールドは作らない方がよいかもしれないですね。
何番のレコードが入ってくるか、もしかしたらダブっちゃうかもしれませんし。。。
その辺はケースバイケースだと思いますんで、よく検討してテーブル設計を行ってください。