<Access テーブル追加クエリーを使用してみた>
こんにちは、三流プログラマーのKen3です。 前回、 テーブル作成クエリーを使用して、 既存のデータからテーブルを作成してみました。 今回は、クエリーの検索結果を別テーブルへ追加する、 追加クエリーを使用してみたいと思います。 今回の、サンプルファイルは、 http://www.ken3.org/vba/lzh/vba136.lzh にdb135.mdb(Access2000版)が保存されています。 ※クエリーやデータをいじって、遊んでみてください。/* * 1. 今回のキッカケ */
No.135 Access テーブル作成クエリーを使用してみた http://www.ken3.org/backno/backno_vba28.html#135 で、 郵便番号別のテーブルを作成しました。 今回は、集計を行い、ある条件(10以下のデータ) を別のテーブルのデータに追加してみたいと思います。/* * 2.処理の仕様 */
処理の流れ、仕様は下記のような感じです。 作成方法・方針の詳細は、 No.133 仕様変更が来たら?落胆しないで前向きに? http://www.ken3.org/backno/backno_vba27.html#133 上記を参照してください。 YUBIN_DATA5テーブルに対して、集計をかけます。 変換後郵便番号 70009 19400 22000 22000 ここから、 変換後郵便番号 変換後郵便番号のカウント 00108 27 06137 27 10100 5 10106 4 と、集計します。 ここで、カウント数によって2つの分かれ道、 10以上は、そのままExcelへデータセットに使います。 10回以下は、頭3桁の番号とカウント数を、YUBIN_DATA3テーブルへ追加します。 集計結果の、 10100 5 10106 4 を YUBIN_DATA3 に追加します ~~~~~~~~~~~ 郵便番号 数 001 1 (※1もともとセットされているデータ) 061 1 ( 〃 ) 101 1 ( 〃 ) 101 5 (YUBIN_DATA5の集計クエリーから10100集計5のデータ) 101 4 (YUBIN_DATA5の集計クエリーから10106集計4のデータ) ※郵便番号101数5 と 郵便番号101数4のデータが追加される なんて処理を、追加クエリーを使用して、作成してみます。/* * 3.追加クエリーの作成方法 */
まぁ、追加クエリーなんて、カッコよく言っているけど、 手順としては、まず、追加するデータをセレクト・選択しないとね。 (選択された、ある条件のデーターを追加、そんなパターンなので) 普通に集計クエリーを作成します ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ YUBIN_DATA5テーブルに対して、 変換後郵便番号をグループ化してカウントします。 変換後郵便番号 変換後郵便番号のカウント 10800 2 11200 19 11300 13 ↑グループ化して、カウントしたクエリー 追加したいデータは、10以下のデータなので、条件<10を追加する。 それと、3桁のデータにして追加したいので、 YUBIN3桁:Left([変換後郵便番号])と式を追加して1つフィールドを作成します。 ※ポイントは、集計項目でLeftなど計算しているところを演算にします ↑グループ化して、カウント、条件10以下、左から3桁の項目(演算)作成 変換後郵便番号 変換後郵便番号のカウント YUBIN3桁 10500 1 105 10700 5 107 10755 9 107 10800 2 108 こんな感じで表示が出来たら、 このデータを YUBIN_DATA3テーブルに追加します ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ まず、クエリーの種類を通常の選択から、追加に変更します。 メニューのクエリーから追加を選択します。 ↑メニューからクエリーの追加を選択する すると、どのテーブルに追加するのか? って感じで、聞いてくるので(ダイアログが表示されるので) カレントデータベースのYUBIN_DATA3を選択します。 ↑追加先テーブルを選択したイメージ 次に、追加する項目を選択します。 ※フィールドを対応付けます。 変換後郵便番号 変換後郵便番号のカウント YUBIN3桁 10500 1 105 10700 5 107 を DATA_YUBIN3テーブル の 郵便番号フィールドにはYUBIN3桁, 数フィールドには変換後郵便番号のカウント を追加するために、 レコードの追加の項目で、追加先のフィールドを選択します。 ↑追加先フィールドを選択したイメージ これで、実行すると、集計して10以下のデータを追加することができます。/* * 4.カウントから集計へ */
同様に、YUBIN_DATA3を集計して、10以下のデータをYUBIN_DATA2へ追加します。 ポイントは、 ^^^^^^^^^^^^ いままで、郵便番号でグループ化、郵便番号のカウント(数を数える) で、集計していたのですが、 YUBIN_DATA3 テーブルの構造は(作りは) ~~~~~~~~~~~ 郵便番号 数 001 1 (※1もともとセットされているデータ) 061 1 ( 〃 ) 101 1 ( 〃 ) 101 5 (YUBIN_DATA5の集計クエリーから10100集計5のデータ) 101 4 (YUBIN_DATA5の集計クエリーから10106集計4のデータ) ※郵便番号101数5 と 郵便番号101数4のデータが追加されている なので、 郵便番号はグループ化、フィールド[数]は合計としてグループ化します。 (※101は、1+5+4で10と合計を計算させる) ↑合計を計算するクエリー ~~~~~~~~~~~~~~~~~~~~~~~~ あとは、同様に、<10以下、頭2桁の項目を作成して、 YUBIN2_DATAに追加します。 (YUBIN2桁: Left([郵便番号],2)と演算フィールドを作成) ↑追加クエリーにして、YUBIN_DATA2の項目へ10以下のデータを追加 -【けんぞう!】--------------------------------------------------------- 転職関係、在宅プログラマー、SOHOの広告まとめました http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ 登録料無料、匿名で探せるので在宅でアルバイト、副業の人も見てね ------------------------------------------------------------------------/* * 4.終わりの挨拶 */
今回は、 追加クエリーを使用して、 他のテーブルにデータを追加してみました。 ポイントは、 ^^^^^^^^^^^^ 普通に表示用のクエリーを作成する。 クエリーのモードを追加に変更、追加するテーブル名とフィールドを選択。 そんな感じの流れで作成可能です。 あとは、このテーブルから、ExcelへデータをセットすればOKですね。 今回の、サンプルファイルは、 http://www.ken3.org/vba/lzh/vba136.lzh にdb136.mdb(Access2000版)が保存されています。 ※クエリーやデータをいじって、遊んでみてください。 う〜ん、まだまだだなぁ・・・ 何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]