投稿日時:

Access 2010 初級 一日速習研修


アクセスの基礎はこれでバッチリ!簡単なデータベース作成を通じて、アクセスの基本操作からリレーションシップの基礎までを学ぶ講座です。
本コースではAccess2010を利用した講習を行います。

Access 2010 応用 一日速習研修


クエリ・リレーションシップの応用からマクロの基礎までをしっかり学ぶ講座です。実務でアクセスを利用する方は、ここまで学ぶと業務への活用の幅が大幅に広がります!
本コースではAccess2010を利用した講習を行います。

Ac/Ex VBA文法初級 一日速習研修


ExcelVBA(=Excelマクロ)・AccessVBAを用いた自動化・省力化を行う際に必須である、VBAプログラミングにおける基本文法を集中的に学習する講座です。プログラミング技術習得の最短ステップは「既存のソースコードを理解し、改良しながら覚える」ことです。VBAの基本文法をしっかり理解することで、ソースコードの理解力が飛躍的に高まり、効率的な作成が可能となります。アクセスやエクセルでの作業の自動化・省力化を行うための最初のステップとして、オススメの研修です!

Excel 2010 応用 一日速習研修


関数の高度な使い方、オートフィルタやピボットテーブル、複合グラフなど、エクセルの応用操作を一日で習得する講座です。業務でエクセルをより活用し、使いこなしたい方にオススメです!
本コースではExcel2010を利用した講習を行います。

Excel VBA実践 一日速習研修


外部アプリケーションとのデータ連係やデータ処理の自動化など、VBAをより活用したエクセルの制御方法を実習中心に学ぶ研修です。
VBAによる開発スキルに磨きをかけたい方にオススメです!

投稿日時:

今回はベン図とSQLを応用して、下記の課題を解いてみましょう。
Accessを用いたサンプルはコチラをご参照ください。

【課題】
テーブル「TableA」のフィールド「Code」には「A,B,C,D,E,F」のデータがある。
テーブル「TableB」のフィールド「Code」には「A,B,C,H,I,J」のデータがある。
ベン図の考え方を用いてTableBのCodeをTableAのCodeと同じレコードにしなさい。

【回答例】
1.TableBにある「H,I,J」を削除します。
 TableAとTableBの論理積「A,B,C」は下記のSQLで取得できます。

(サンプルのクエリ1)

SELECT TableA.Code FROM TableA INNER JOIN TableB ON TableA.Code = TableB.Code;

 次に、「NOT IN」を使用し、TableBから「A,B,C」以外のレコード(「H,I,J」)を削除指定します。

(サンプルのクエリ2)

DELETE FROM TableB WHERE TableB.Code NOT IN (SELECT TableA.Code FROM TableA INNER JOIN TableB ON TableA.Code = TableB.Code);

2.TableAの「D,E,F」をTableBに追加します。
 先程の論理積「A,B,C」とNOT INを使用すれば、TableAから「A,B,C」以外のレコード(「D,E,F」)を指定できます。

(サンプルのクエリ3)

INSERT INTO TableB (Code) SELECT Code FROM TableA WHERE Code NOT IN (SELECT TableA.Code FROM TableA INNER JOIN TableB ON TableA.Code = TableB.Code);

ベン図の考え方を用いなければ、TableBの全レコードを削除してTableAの全レコードをコピーする容易な方法が取れるのですが、設計に依り容易な方法を使えない場合もありますし、クエリ2までを実施したいという要望が発生することもあります。
この様な時に、ベン図の考え方を取り入れたテクニックを応用してみてはいかがでしょうか。

(担当:奥田 英太郎