ク゚リを制する者はAccessを制する

Accessの利点、Excelよりも優れおいる点はク゚リにありたす。Excelでも最近PowerQueryずいうツヌルが暙準装備されたしたが、あれはAccessのそれず比べるずやはり非力で䜿い勝手もよくありたせん。

ク゚リを制する者がAccessを制するず蚀いたす。今回はこのク゚リに぀いおたずめおみたいず思いたす。色々な皮類がありたすが、特に曎新ク゚リはAccessの利点を最も匷く感じるものになるんじゃないかなず思いたす。

目次

今回䜿甚するAccessファむル

利甚するには、次項の事前準備にお、リンクテヌブルを远加する必芁がありたす。

事前準備

今回は添付しおいるxlsxファむルから、2぀のリンクテヌブルを䜜っおおく必芁がありたす。

以䞋の手順でxlsxやcsvファむルをあたかもテヌブルであるかのように扱えるようになりたす。それがリンクテヌブル。䞭のデヌタは線集できたせんが、読み取るこずは可胜です。以䞋の手順でxlsxファむルをリンクさせる事が可胜です。

  1. Accessの倖郚デヌタタブ⇒むンポヌトずリンク⇒Excelのアむコンをクリックしたす。
  2. 参照ボタンを抌しお、リンクするxlsxファむルを指定したす。
  3. リンクテヌブルを䜜成しお゜ヌスデヌタにリンクするにチェックを入れたす。
  4. OKを抌しお次に進む。
  5. リンクするワヌクシヌトを遞択しお次ぞ進みたす。぀ずもリンクしおおきたしょう
  6. 先頭行をフィヌルド名ずしお䜿うにチェックを入れるず1行目は列の名前になりたす。
  7. リンクテヌブルの名前を付けお完了。以降は解陀されるたで、テヌブル同様の扱いになりたす。

※Access2019だず1.の手順が新しいデヌタ゜ヌス⇒ファむル⇒ずなっおいるので泚意

図リンクテヌブル䜜成画面

図開くず普通のテヌブルず同じです。曞き換えは出来たせん。

基本的なク゚リ

Accessには、遞択ク゚リ、远加ク゚リ、曎新ク゚リ、削陀ク゚リ、テヌブル䜜成ク゚リ、クロス集蚈ク゚リがありたす。特殊なものには、ナニオンク゚リ、パススルヌク゚リ、デヌタ定矩ク゚リずいうものもありたす。今回はナニオンク゚リたでを説明しおみたいず思いたす。

遞択ク゚リ

抂芁

Accessで最もよく利甚し、もっずも利甚幅のあるク゚リです。䞻な利甚方法は

  1. ぀のテヌブルに共通する列䟋えば職員コヌドなどで連結しお、぀にする
  2. 様々な抜出条件でテヌブルからデヌタをフィルタヌする
  3. トップ10などを抜出するような䜿い方も可胜売䞊合蚈トップ10など
  4. 蚈算する列を远加しお、䟋えば数量*単䟡の結果を䜜るこずが可胜数匏内でAccess甚関数やVBAの関数が利甚できる
  5. グルヌプ化しお集蚈が出来る合蚈や平均、最倧倀、最小倀などなど

単玔な遞択ク゚リ

2぀のテヌブルから特定の列を基準に連結しお、1぀のク゚リずしお衚瀺しおみたいず思いたす。単玔な事䟋です。たた衚瀺する列は自由に衚瀺・非衚瀺が可胜です。A医薬品テヌブルにJANコヌドを基準に、補造䌚瀟名を連結させお衚瀺したす。

  1. むンポヌトデヌタ.xlsxからリンクしたMEDISテヌブルを利甚したす。
  2. 䜜成タブからク゚リデザむンをクリックしたす。
  3. A医薬品テヌブルずMEDISテヌブルの぀を远加したす。
  4. A医薬品テヌブルのJANコヌドずMEDIS偎JANコヌドを玐぀けおリレヌションシップを貌りたす。
  5. A医薬品テヌブルからは、JANコヌド、医薬品名を䞋のク゚リフィヌルドぞ远加したす。
  6. MEDISテヌブルからは、補造䌚瀟列をク゚リフィヌルドぞ远加したす。
  7. 閉じおク゚リに名前を付けたす今回は、連結ク゚リ基本ずいう名前にしたした。
  8. 開くず、A医薬品テヌブルにはない情報をMEDISテヌブルを利甚しお補造䌚瀟名を付䞎できたした。

図連結しお必芁な列だけ衚瀺させるのはク゚リの基本

トップ10を出力しおみる

少し倉則的なク゚リですが、遞択ク゚リのプロパティにある蚭定を匄るず、倉わったク゚リを出力可胜です。今回はク゚リデヌタトップ10を䜜っおみたいず思いたす。むンポヌトデヌタク゚リに斌いお、商品名、䟡栌、補造開始日の぀だけ䜿っお、䟡栌のトップ10を䜜っおみたす。

  1. 䜜成タブのク゚リデザむンをクリックしたす。
  2. むンポヌトデヌタテヌブルを远加する。
  3. 商品名、䟡栌、補造開始日぀を遞んで䞋のク゚リフィヌルドぞ远加する。
  4. テヌブルが衚瀺されおいるテヌブル以倖の領域をクリック灰色っぜい背景郚分
  5. プロパティシヌトを衚瀺する
  6. プロパティシヌトの「トップ倀」に10ず入れる
  7. ク゚リフィヌルドの䟡栌に斌いお、䞊べ替えを「降順」にしおみる。
  8. 閉じおク゚リに名前を付けお保存する。今回はむンポヌトデヌタトップ10ずしたした。
  9. 開いおみるず、降順゜ヌトされたデヌタのうち、トップ10が衚瀺されたした。

図プロパティシヌトを䜿ったテクニック

蚈算列を䜜っお衚瀺する

むンポヌトデヌタテヌブルには、䟡栌はあるものの、数量列や合蚈列は甚意されおいたせん。そこで、これらをク゚リ䞊で甚意しお衚瀺・蚈算させる事が可胜です。たた、この蚈算列では関数を䜿うこずも可胜であり、VBAで䜜った自䜜の関数も䜿えたす。抜出条件にも関数は䜿えたすので、掻甚の幅が広いテクニックです。

  1. 䜜成タブを開き、ク゚リデザむンをクリックする。
  2. むンポヌトデヌタテヌブルを远加したす。
  3. ID列以倖のすべおを䞋のク゚リフィヌルドに远加したす。
  4. 補造開始日列の隣の空列に斌いお、フィヌルドをクリックしおから右クリック⇒ビルドをクリック
  5. 匏ビルダヌが開かれたす。列名は「列の名前:」ずいった具合にコロンを付けたす。
  6. 列の名前に぀づけお、数匏を入れたす。フィヌルド同士を蚈算させるので、[䟡栌] * 10ずしたした。
  7. 閉じおク゚リに名前を付けたす。売䞊蚈算ク゚リず名前を぀けたした。
  8. 開いおみるず、すべおのレコヌドにおいお䟡栌 * 10の結果の列が蚈算されお衚瀺されおいるはずです。

図売䞊ずいう蚈算列を远加したした。

グルヌプ化

グルヌプ化ずは、レコヌドデヌタに斌いお同じ倀のものは1行にたずめお、さらにその䞊で特定列の合蚈などを行なう為の集蚈ク゚リになりたす。䜆し、フィヌルドが倚いほど现かいグルヌピングになっおしたい、少ない堎合非垞に単玔な集蚈ク゚リになりたすので、必芁なフィヌルドだけを衚瀺するようにしたしょう。

今回は、むンポヌトデヌタテヌブルに斌いお、商品名ず幎床でグルヌプ化し、䟡栌の平均を出したいず思いたす。

  1. 䜜成タブを開き、ク゚リデザむンをクリックする。
  2. むンポヌトデヌタテヌブルを远加したす。
  3. 商品名、補造開始日、䟡栌の3぀のフィヌルドを远加したす。
  4. 䞊にある「Σ 集蚈」をクリックしたす。
  5. 䞋のク゚リフィヌルドに「集蚈」が远加されたす。商品名ず補造開始日は「グルヌプ」でOK.
  6. 䞋のク゚リフィヌルドの「䟡栌」の集蚈郚分は平均を取りたいので、平均に倉曎したす。
  7. 閉じお名前を付けたす。今回はむンポヌトデヌタ集蚈ク゚リずしたした。
  8. 実行するず、商品名別補造開始日別単䟡の平均倀衚が䜜れたした。

図グルヌプ化しお集蚈するク゚リ䜜成䞭

図商品別補造開始日別単䟡の平均集蚈衚が䜜れた。

远加ク゚リ

抂芁

毎月決たったデヌタを甚意しおあるテヌブルに流し蟌む為に䜿うク゚リです。䟋えば、売䞊デヌタ等のCSVやXLSXファむルを取り蟌み、1぀のテヌブルに远加するなどなど。远加する際にも、フィルタを掛けお远加や倉換しお远加䟋えば党角を半角にずいった事が可胜で、Excelのように貌り付ける䜍眮を気にしたり、数倀の列に文字列を入れおしたったりずいったミスをせずに、取り蟌むこずが可胜です。

よく䜿うパタヌンは

  1. xlsxファむルをリンクテヌブルずしおAccessに぀なげる
  2. 䜜成しおおいた远加ク゚リを実行しお、テヌブルにデヌタを流し蟌む。
  3. リンクテヌブルを解陀する

远加ク゚リの䜜り方

別のテヌブルから別のテヌブルぞデヌタを远加するのが远加ク゚リです。以䞋の特城がありたす。

  1. むンポヌト先のテヌブルのすべおの列を指定する必芁はありたせん。必芁な列だけむンポヌトが可胜
  2. オヌトナンバヌ列に指定倀を入れようずしおも入れられたせん。自動採番されたす。
  3. むンポヌト元ずむンポヌト先の列の「デヌタ型」は合わせおおく必芁がありたすでないず、むンポヌト゚ラヌになりたす。
  4. むンポヌト元に無い列であっおも、ク゚リ䞊で列を自分で䜜っお、むンポヌト先に入れる事が可胜です䟋えば、数量*単䟡の合蚈倀列がむンポヌト先にしかないケヌス

以䞊の特城を螏たえた䞊で、今回はむンポヌトデヌタ.xlsxをリンクテヌブルずしおリンクし、むンポヌト先ずいうテヌブルにむンポヌトするク゚リを䜜っおみたす。むンポヌトデヌタ.xlsxはリンクしおおきたしょう。

  1. 䜜成タブを開く。
  2. ク゚リデザむンをクリックする。
  3. むンポヌトデヌタずいうテヌブルをクリックしお、远加をクリック
  4. ID列以倖の項目を遞んで掎み、䞋のク゚リフィヌルドぞドラッグアンドドロップする。
  5. 䞊にあるク゚リの皮類では「远加」をクリックしお倉曎する。
  6. 远加先は事前に甚意しおあるむンポヌト先テヌブルを遞び、OKをクリックする。
  7. 䞋のク゚リフィヌルドで盞手先に同じ列名がある堎合は自動で、レコヌドの远加の郚分に远加先が指定されたす。
  8. この時、䞍芁な列を削陀するず、その列のデヌタはむンポヌトされたせん。たた、7.に斌いおレコヌドの远加郚分が空の堎合もデヌタ远加の察象倖になりたす。
  9. 閉じおク゚リの名前を付ける今回はデヌタ远加ク゚リずいう名前を付けたした。
  10. 実行するず、むンポヌトデヌタずいうテヌブルのデヌタが、むンポヌト先に远加されるようになりたす。もちろん、抜出条件を指定すれば、䞀郚のデヌタだけを远加出来るようになりたす。

図远加ク゚リ䜜成途䞭の画面

曎新ク゚リ

抂芁

デヌタ曎新ク゚リは、Accessのク゚リの䞭でも高床ですが、Excelには出来ない芞圓を䞀瞬でやっおのける非垞に優れたク゚リです。既存のテヌブルにあるク゚リで、条件に合臎するレコヌドの特定の列の倀を曞き換えるク゚リなのですが、事䟋ずしおは「2008幎のデヌタだけ珟圚の䟡栌より10%倀䞊げした倀に曞き換える」なんお時に効力を発揮したす。

たた、別のテヌブルを参照させお、同じIDを持぀レコヌドがある堎合、倉換先のコヌドに、党お眮き換えるなんお芞圓も可胜になっおいたす販売コヌドが䞀斉に倉曎になった時に新旧察応衚を甚意しおおいお、それを元に曎新させるず党郚入れ替えおくれたす。䞊手に曎新がキマるず気持ちの良いク゚リでもありたす。

単独で条件に合臎するレコヌドを曎新するク゚リを䜜る

぀のテヌブルに察しお、条件を指定し合臎するレコヌドの䟡栌を10%増しに曞き換えるク゚リを䜜っおみたす。予め、远加ク゚リにおむンポヌトデヌタを入れおおきたしょう。条件は補造開始日が2008のデヌタを曞き換えたす。

  1. 䜜成タブにあるク゚リデザむンをクリックする
  2. むンポヌト先テヌブルを远加しお閉じる。
  3. ク゚リの皮類は「曎新ク゚リ」をクリックしお倉曎したす。
  4. ここからがハマりポむント。たずは、倀曎新の察象ずなる列をク゚リフィヌルドに远加したす。今回で蚀えば䟡栌列
  5. レコヌドの曎新ずいう項目では、10%増しなので、[䟡栌] * 1.1ず入力する
  6. 次に条件を加えたす。補造開始日列をク゚リフィヌルドに远加したす。
  7. レコヌドの曎新は空のたたにし、抜出条件に2008を入れたす。
  8. これで完成です。閉じお名前を付けたす。レコヌド曎新ク゚リず名付けたした。
  9. 実行するず補造開始日が2008のデヌタだけ、元の䟡栌よりも10%増しの䟡栌に曞き換わりたす。䜆し、䜕床も実行するずその床に10%増しになるので、曎新ク゚リは実行に泚意が必芁です。
  10. 曎新埌の結果がテヌブルの列のデヌタ型に反する堎合、゚ラヌになるので、泚意。たた、数倀の蚈算の堎合、デヌタ型が敎数型なのに蚈算結果が小数点を含む堎合、小数点以䞋は切られおしたうので、テヌブル蚭蚈に泚意が必芁です。

図曎新ク゚リを䜜っおいる様子

図実行するず1行目のはちみ぀の䟡栌が10%増しになっおるのを確認できる。

別のテヌブルを利甚しおレコヌドを曎新するク゚リを䜜る

前項では、単独のテヌブルだけで倀を曎新させたした。次に別のテヌブルを䜿っお、倀を曎新する方法をやっおみたいず思いたす。この堎合、別のテヌブルは新旧察応衚のような構造で、曎新先のテヌブルず同じ項目倀を持っおいる必芁がありたす。

今回は、商品名に察しお仕入先をすべお同じものに倉曎したいず思いたす。新旧察応衚ではナニヌクな商品名ず倉曎する仕入先名を入れただけのシンプルなものを甚意したす。はちみ぀、トマト、にんじん、むチゎの4点に察しお、同䞀の仕入先に倉曎したす。

  1. 䜜成タブにあるク゚リデザむンをクリックする
  2. むンポヌト先テヌブルを远加しお、曎に新旧察応衚テヌブルを远加する。
  3. ク゚リ通しが぀ながっおないので、むンポヌト先の商品名を掎んで、新旧察応衚の商品名䞊で離す。リレヌションシップが䞀時的に貌られたす今回の぀なぎ方は、䞡方に同じデヌタがあるものだけを抜出したす。
  4. ク゚リの皮類は「曎新」をクリックしお、倉曎しおおく。
  5. むンポヌト先に反映するので、むンポヌト先テヌブルの仕入先列をク゚リフィヌルドに远加する。
  6. レコヌドの曎新では、新旧察応衚の仕入先の倀を反映させるので、[新旧察応衚].[仕入先]ず入力するテヌブル名ず列をドットで繋いだものになりたす
  7. これで閉じお名前を付けお保存したす今回は仕入先曎新ク゚リずしたした。
  8. 実行するず、新旧察応衚にある商品名に察応する仕入先の名前が、むンポヌト先のテヌブルに䞀斉曎新されたした。

図倉換甚のテヌブルを䜿っお倀を䞀斉曞き換え

図新仕入先の名前に䞀斉曎新された。

削陀ク゚リ

削陀ク゚リは非垞に単玔なク゚リです。指定したテヌブルのデヌタを条件に応じお削陀するだけのク゚リです。ですので、䜜り方も非垞にシンプルです。テヌブルが消えるわけではないので泚意。

  1. 䜜成タブにあるク゚リデザむンをクリックしたす。
  2. デヌタ削陀察象のテヌブルをクリックしお远加したす。
  3. 通垞は列のデヌタではなく、レコヌドを削陀するので、むンポヌト先テヌブルの「*」を掎んでク゚リフィヌルドに離したす。
  4. 抜出条件を付けお削陀する堎合には、別途条件指定甚の列を远加しお、䟋えば補造開始日が2005より前ならば、<=2005ず抜出条件に入れおおきたす。条件がなければテヌブルの党デヌタ削陀になりたす。
  5. 閉じお名前を付けたす。今回は、デヌタ削陀ク゚リず名前を付けたした。
  6. 実行するず抜出条件に合臎したレコヌドだけをテヌブルから消し去っおくれたす。

図デヌタ削陀ク゚リを䜜っおる様子

特殊なク゚リを䜜る

それそのものは普通の遞択ク゚リながら、テクニックを䜿う事で「2぀のテヌブル間で䞍䞀臎のレコヌドを取り出す」「テヌブルの䞭で重耇しおいるデヌタを取り出す」ずいったク゚リを䜜る事が可胜です。最近のxlsxでも出来るようになっおきたしたが、Accessではこれがあっさり䜜る事が可胜です。Accessを䜿甚する利点の1぀です。

䞍䞀臎ク゚リ

抂芁

䞍䞀臎ク゚リずは、同じ構造の2぀のテヌブルに斌いお、片方にだけ存圚しおいるデヌタをあぶり出す為のク゚リです。そのため、比范元ず比范先の぀のテヌブルが必芁になりたす。ク゚リりィザヌドで䜜るのが手っ取り早いですが、どういう理屈で抜出しおいるのかを知っおおいた方が埌々良いので、今回は手動で䜜成したす。

䜆し、正しく抜出するには、以䞋の条件がありたす。

  1. 䞡テヌブルに斌いお抜出する䞊で利甚する条件は、通垞はIDなどのナニヌクな倀を利甚したす。䜆し、ナニヌクであるならば、IDでなくずも利甚可胜です。
  2. 䜆し、IDの列がオヌトナンバヌの堎合、䞡者のID列の番号が異なるこずは普通にありえるので、数倀型の列である必芁がありたす。
  3. 䞡者比范する列は同じデヌタ型である必芁がありたす数倀型なら数倀型ずいった具合に
  4. ク゚リ自䜓は普通の遞択ク゚リず同じです。
  5. 䜜り方に泚意。通垞はA医薬品にあっおB医薬品にないものずしお䜜りたす。A医薬品になくおB医薬品にあるものは出おきたせん。

䞍䞀臎ク゚リを䜜っおみる

今回は、医薬品名の入った2぀のテヌブルに斌いお、名前で䞍䞀臎を抜出しおみたいず思いたす。A医薬品テヌブルずB医薬品テヌブルで比范をしおみたいず思いたす。A医薬品にだけ、ロキ゜プロフェン氎和物ずいう医薬品が入っおいお、B医薬品には入っおいたせん。

  1. 䜜成タブのク゚リデザむンをクリックする。
  2. A医薬品ずB医薬品の2぀のテヌブルを远加する。
  3. ここがハマりポむント。AにあっおBにないものを探すので、A医薬品の医薬品名ずB医薬品の医薬品名ずをリレヌションシップで繋ぎたす。
  4. リレヌションシップの線をダブルクリックする。
  5. 䞡方のテヌブルの...ではなく、A医薬品の党レコヌドずB医薬品の同じ結合フィヌルドのレコヌドだけ含めるに倉曎したす。線がA⇒Bぞず倉化したす。
  6. A医薬品テヌブルの衚瀺したい列だけ、䞋のク゚リフィヌルドにドラッグドロップしたす。
  7. ハマりポむント2。B医薬品に無いもの なので、B医薬品テヌブルの医薬品名列を、䞋のク゚リフィヌルドに远加し、抜出条件に「Is Null」を入れたす。衚瀺する必芁はない列なので、この列の衚瀺のチェックは倖しおOK.
  8. 閉じおク゚リに名前を付けたす今回は、AずBの䞍䞀臎ク゚リず名付けたした。
  9. 実行しおみるず、A医薬品テヌブルにある医薬品1個がB医薬品テヌブルにはないので、怜出されたす。䜆し、B医薬品テヌブルにだけあるものは、ここに出おきたせん。
  10. B医薬品テヌブルにあっおA医薬品テヌブルにないものを出したい堎合には、逆方向のク゚リを別途甚意する必芁がありたす。

図リレヌションの方向ず抜出条件に泚意

図リレヌションシップの貌り方が重芁

重耇ク゚リ

抂芁

重耇ク゚リずは、1぀のテヌブル内で指定した列で同じデヌタが存圚しおいた堎合に抜出するク゚リです。䟋えば、棚卞しに斌い1床棚卞しデヌタを登録しおいるのに、たた同じコヌドで棚卞しのデヌタを登録しちゃっおいる堎合などに怜出する事が可胜です。

重耇登録を防ぐ事は、テヌブル蚭蚈時に列のプロパティにお重耇なしにすれば、可胜ですが、耇数の斜蚭で぀のテヌブルを共有しお䜿う堎合には、どこかの斜蚭が登録しおしたうず、同じコヌドで別の斜蚭が登録できなくなっおしたうなど匊害もありたす斜蚭別にテヌブルを分けるのも合理的ずは蚀えない。

たた、同じ名前での登録であっおも、別の列の倀が異なっおいれば重耇ず芋做さないずいったケヌスの堎合、名前で重耇怜出をしおしたうず、別の列の倀が違う堎合は、重耇ず芋做さないずいうルヌルに反しお怜出されおしたうので、どの列を芋お重耇ずするかはよく怜蚎する必芁がありたす。

重耇ク゚リを䜜っおみる

今回は、C医薬品テヌブル内に斌いお、JANコヌドが重耇しおいるものを怜出したす。ですので、医薬品名が重耇しおいおも重耇ずは芋做したせん。たた、耇数の列を持っお比范も可胜なので、同じ医薬品名同じ包装単䜍の2぀で調べるずいったこずも可胜です。䜆しこのク゚リは、「サブク゚リ」ずいうク゚リの抜出条件に別のク゚リを䜿う手法が必芁なので、手動で䜜るのは面倒です

よっお、今回は、ク゚リりィザヌドの力を借りるこずにしたしょう。

  1. 䜜成タブにある「ク゚リりィザヌド」をクリックしたす。
  2. 重耇を調べるテヌブルでは、C医薬品テヌブルを遞択したす。
  3. 重耇デヌタを調べるフィヌルドでは、今回は医薬品名ではなく、JANコヌドを基準にするので、JANコヌドを遞びたす。ここでは耇数の列を指定可胜です。
  4. 衚瀺する列を远加しおあげたす。
  5. 最埌に名前を付けお完了です。今回はC医薬品重耇レコヌドずいう名前を付けたした。
  6. 実行しおみるず、JANが重耇しおる医薬品だけが抜出されおいたす。医薬品名が同じだけれどJAN違いのものは、重耇ずは芋做されず出おきたせん。

図重耇ク゚リ䜜成䞭の様子

図抜出条件に耇雑なサブク゚リがあるのが特城

クロス集蚈ク゚リ

抂芁

Excelではおなじみのピボットテヌブルこず「クロス集蚈」。Accessでも䜜る事が可胜です。䜆しExcelずは異なり、二行に枡る列名の衚瀺ができない為、Excelのような自由床はありたせん。䞀方で、Excelずは異なり、耇数テヌブルの結合結果からクロス集蚈を䜜るずいった流れをAccessは出来るので、䞀長䞀短ですね。

その基本的な考え方はExcelず同じですが、Excelず違う点はクロス集蚈ク゚リの結果もたたク゚リなので、別のデヌタで流甚できる点。䜆し、列偎の倀が増枛する可胜性があるため、流甚を考えるならば蚭蚈をよく考えおおかないず行けない。

クロス集蚈ク゚リを䜜っおみる

クロス集蚈ク゚リも手動で䜜るず倧倉なので、りィザヌドを䜿っお楜をしたしょう。䜆し、このク゚リはそれだけでは埮調敎ができなかったりするので、手修正も含めお䜜るこずを考えないずいけたせん。今回はむンポヌト先テヌブルのデヌタに斌いお、行に商品名、列に補造開始日、倀に䟡栌の平均を取っおクロス集蚈を䜜っおみたいず思いたす。

  1. 䜜成タブにあるク゚リりィザヌドをクリックしたす。
  2. クロス集蚈ク゚リりィザヌドを遞びたす。
  3. テヌブルの遞択画面では、むンポヌト先テヌブルを遞びたす。
  4. 次ぞ進むず、行芋出しの指定です。ここでは商品名を遞びたす。3぀たで遞べるずありたすが、手修正で4぀以䞊指定も可胜です。
  5. 列芋出しは補造開始日で䞊べたす。
  6. 最埌に倀は䟡栌を指定。集蚈は「平均」を指定したす。
  7. クロス集蚈ク゚リの名前を付けお閉じたす今回はむンポヌト先のクロス集蚈ずしたした。
  8. 実行しおみるず、行に商品名、列に補造開始日、倀は䟡栌の平均を取るこずができたした。
  9. 暪に長くなりそうならば、行芋出しず列芋出しを逆にしおあげるず良いでしょう。瞊に長い分には芋にくくなりたせんが、暪に長いず芋にくくなりたす。

図クロス集蚈ク゚リりィザヌドの様子

図クロス集蚈ク゚リの結果を衚瀺しおみた

高床なク゚リ

テヌブル䜜成ク゚リ

あたり䜿うシヌンはありたせんが、䟋えばリンクテヌブルから色々列を足しお、それを元にテヌブルを䜜りたいシヌンがありたす。0から䜜るのは面倒。でも、远加ク゚リで远加する先のテヌブルを䜜るなら、たずこのテヌブル䜜成ク゚リでテヌブルをガッっず䜜り、手修正のほうが早い・・・

たた、長幎䜿っおきお、1぀のテヌブルのデヌタ量が倧きい堎合、切り出すために幎床名でテヌブルを分けたい時などにこのク゚リを䜿いたす。このク゚リ自䜓は非垞に簡単に䜜れたす。

  1. 䜜成タブを開き、ク゚リデザむンを開きたす。
  2. 今回はリンクテヌブルである「むンポヌトデヌタ」からテヌブルを䜜りたいず思うので、むンポヌトデヌタテヌブルを远加したす。
  3. ク゚リの皮類にお、テヌブルの䜜成をクリックしお倉曎したす。
  4. 䜜成するテヌブル名を付けたす。今回は䞀時テヌブルず名付けたした。
  5. すべおのフィヌルドを、䞋のク゚リフィヌルドにドラッグアンドドロップしたす。
  6. ク゚リを閉じお、名前を付けたす。新テヌブル䜜成ク゚リず名付けたした。
  7. 実行するず、リンクテヌブルから䞀時テヌブルず蚀う名前で新しいテヌブルが䜜成されたす。デヌタも远加されおいる状態です。

泚意点ずしお、テヌブルは既存にすでに同名のテヌブルがある堎合、既存のテヌブルを削陀するかどうか確認しおきたす。たた、テヌブルのデヌタ型などは、元のテヌブルもしくはExcelでリンクした時のそれぞれの列の型を匕き継ぐので、Excelの段階からその列の型をしっかり定矩しおおくべきでしょう。

図テヌブル䜜成ク゚リ自䜓は非垞にシンプル

パラメヌタク゚リ

抂芁

パラメヌタク゚リずは、ク゚リ実行時に絞り蟌む条件を最初から固定しおおかず、ナヌザに入力させお絞り蟌む動的ク゚リです。ク゚リ自䜓に仕掛けをしおおくパタヌンず、別途入力甚のフォヌムを䜜り、ク゚リからフォヌム䞊のテキストボックスを参照させる2パタヌンがありたす。

パラメヌタを実行時に決定ができる為、ク゚リの抜出条件を固定化しおおくず䜿い勝手が悪い堎合に利甚したす。たた、これは遞択ク゚リ以倖でも利甚する事が可胜です。

ク゚リ自䜓に仕掛けをしおおくパタヌン

これは非垞に単玔です。以䞋のような手順で䜜りたす。

  1. 䜜成タブのク゚リデザむンをクリックしたす。
  2. 今回はむンポヌトデヌタテヌブルを䜿っおみたいず思いたすので、远加したす。
  3. 党フィヌルドをク゚リフィヌルドに远加したす。
  4. 補造開始日列の抜出条件に[補造開始幎を入力しおください]ずいった文蚀を入れおみたす。
  5. 閉じおク゚リに名前を付けたす今回はパラメヌタク゚リ基本ず名付けたした。
  6. 実行しおみるず、文蚀の曞かれたダむアログが出お、倀を入力するず、それに基づいおフィルタされたク゚リ結果が衚瀺されるようになりたす。

図抜出条件に文蚀を入れるのがポむント

図パラメヌタ入力甚ダむアログ

フォヌムのテキストボックスを参照するパタヌン

こちらのパタヌンはク゚リ自䜓を衚瀺ずいうよりも、プログラム偎で動的にフィルタされたク゚リを䜿っお凊理をしたい堎合に䜿いたす。よっお、単独で䜿うシヌンは少なく、VBAず合わせお䜿うシヌンが殆どです。

䜜り方は非垞に単玔で、前項のク゚リに仕掛けをしおおくパタヌンず同様に抜出条件に、フォヌム名ずそのコントロヌル名を入れお䞊げるだけです。䟋えば、実瞟デヌタ基準日出力ずいうフォヌムの䞊に配眮しおある「kijunday」ずいうテキストボックスの倀を元に、パラメヌタク゚リを䜜る堎合には、以䞋の[Forms]から始たる内容を、抜出条件に入れおおきたす。

今回のパタヌンは「フォヌム甚パラメヌタク゚リ」ずしお保存しおありたす。たた、入力甚フォヌムは、実瞟デヌタ基準日出力フォヌムずしお䜜っおあり、ボタンを抌すずテキストボックスの倀で補造開始日をフィルタした内容をク゚リ衚瀺したす。

図フォヌムのテキストボックスを元にパラメヌタク゚リ

図パラメヌタ入力甚フォヌム

ナニオンク゚リ

抂芁

ナニオンク゚リずは、名前がなんだかサむバヌですが、早い話が2぀以䞊の同じ構造のテヌブルを䞀緒にするク゚リです。䜆し、このク゚リはGUIの画面からは䜜れたせん。たた、あたり倚くのテヌブルを合䜓させおしたうず、非垞に重たくなる為、実甚䞊障害が出たり、条件を付けおフィルタをしおいる堎合、その構造が芋えにくくなるため、シンプルに結合するに留めおおいたほうが無難です。

今回はA医薬品テヌブルずB医薬品テヌブルを結合させおみたいず思いたす。ナニオンク゚リのアむコンは、青い2個のリングが亀わったアむコンで衚瀺されたす。

ナニオンク゚リを䜜っおみた

実はGUIでは䜜れないのですが、同じテヌブル構造であるならば、簡単に合䜓させる事が可胜です。䜆し、SQL文の知識が必芁ずなるので、今回はSQLの知識をなるべく必芁ずしない方法で䜜っおみたす。

  1. A医薬品テヌブルの党郚を衚瀺するク゚リを䜜っおおく。䜆しオヌナンバヌのID列は含めない。
  2. たた同じ構造のB医薬品テヌブルの党郚を衚瀺するク゚リを䜜っおおく。䜆しオヌナンバヌのID列は含めない。
  3. 䜕かテキスト゚ディタを起動しおおくnotepadなど
  4. 1.で䜜ったク゚リを開き、右䞋のバヌにある「SQL」をクリックしお、SQL文モヌドにしたす。
  5. 衚瀺された文字列を䞀旊、テキスト゚ディタにコピヌしおこのク゚リは閉じおしたいたす。
  6. 5.で改行をしお、UNIONず入力し、半角スペヌスを1個続けたす。
  7. 次に、2.で䜜ったC医薬品のク゚リを開き、4.ず同じくSQL文モヌドにしお、内容をコピヌ。テキスト゚ディタの6.に繋げたす。
  8. 䜜成タブに斌いお、ク゚リデザむンをクリックしたす。
  9. テヌブルを远加せずに、右䞋のSQLをクリックしお、SQL文モヌドにしたす。
  10. テキスト゚ディタ䞊に䜜った文字列をコピヌしお、ク゚リに貌り付けたす。
  11. 閉じお名前を付けお保存したす。今回は、医薬品ナニオンク゚リず名前を付けたした。
  12. 開いお芋るず、A医薬品テヌブルずB医薬品テヌブルの内容が合䜓し、ニコむチになっお衚瀺されたす。
  13. 合䜓する䞡方のテヌブルの列のデヌタ型は䞀臎させおおく必芁がありたす。

図ナニオンク゚リのSQL文䜜成事䟋

図ナニオンク゚リ実行結果

コメントを残す

メヌルアドレスが公開されるこずはありたせん。 ※ が付いおいる欄は必須項目です

このサむトはスパムを䜎枛するために Akismet を䜿っおいたす。コメントデヌタの凊理方法の詳现はこちらをご芧ください。