アクセスの中でSQL文を使う


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol159

これならわかるマイクロソフトアクセス活用法
            -->アクセスの中でSQL文を使う
              
発行者:高内 章治 2012年5月 2日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】アクセスの中でSQL文を使う

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「アクセスの中でSQL文を使う」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: アクセスの中でSQL文を使う

─────────────────────────────────

*****注意******
このVBAは、動かなかったので、次のメルマガで訂正しています。
削除クエリを使っています。
************************

アクセスには、クエリがあります。
テーブルのデータを、表示したり、追加、修正、削除をおこなうことができます。

SQLの構文を知らなくても、クエリを使って簡単に作成することができます。

クエリの中で、SQLの構文を自動で作ってくれます。

どんなSQLの構文を作っているのかをみることができます。

アクセス2010では、次のやり方で、SQLの構文をみることができます。

  • クエリのデザインビューを表示させます。
  • 「ホーム」タブの「表示」の「SQLビュー」で、SQLの構文を見ることができます。
  • 「デザインビュー」で元のクエリの画面に戻ります。

クエリを実行すると、このSQL文が動いてデータなどを表示しています。

でも、複雑な、SQL文は、クエリでは、作成が難しくなります。

例えば、
次のようなロット別の在庫データがあります。

入庫データと出庫データから在庫データを計算します。
次のようなもものです。

入庫と出荷のデータです。
「T_入出庫テーブル」とします。

ID 製品名 ロット番号 入庫数 出庫数
01 製品A ロット01 100
02 製品A ロット01 50
03 製品A ロット02 200
04 製品A ロット02 200

IDは、オートナンバーです。

この時の在庫は、入庫と出庫から次のように計算します。
「Q_在庫クエリ」とします。

製品名 ロット番号 入庫数 出庫数 在庫数
製品A ロット01 100 50 50
製品A ロット02 200 200 0

このとき、入庫と出庫が増えてくると出庫が終わったデータは、削除したいですね。
在庫数がゼロの、データです。

この在庫数のゼロの削除については、お客様からの質問でしたので今回、在庫を取り上げました。

どうしますか?
面倒くさいですね。


・まず、「T_入出庫テーブル」に「Q_在庫クエリ」を「製品名」と「ロット番号」で結合します。
横に在庫数を追加します。
「Q_在庫クエリ2」とします。

ID 製品名 ロット番号 入庫数 出庫数 在庫数
01 製品A ロット01 100 50
02 製品A ロット01 50 50
03 製品A ロット02 200 0
04 製品A ロット02 200 0

この、在庫数がゼロの「ID」が削除する、入庫と出荷のデータです。

ここで、SQL文を作ります。

DELETE *
FROM 入出庫テーブル
WHERE (((入出庫テーブル.ID) In (SELECT ID FROM Q_在庫クエリ2 WHERE 在庫数=0)))

のようになります。

DELETE *
FROM 入出庫テーブル
WHERE (((入出庫テーブル.ID) = (SELECT ID FROM Q_在庫クエリ2 WHERE 在庫数=0)))

これでも、大丈夫だと思います。

そして、これを、前回のメルマガのように、VBAで動かせば、在庫数がゼロのものを削除することができます。

クエリに慣れてきたら、SQLの構文を勉強するのもよいと思います。

いろいろな処理ができます。


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

連休のちょうど真ん中ですね。
5月の1日と2日を休むと、9連休になります。

長い連休の人も多いようです。

今日は、あいにく、全国的に天気が悪いようですがまた、連休の後半は、天気は持ち直すようです。

連休で交通事故が増えているようです。

運転には十分気をつけてください。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
14:181505

アクセス全体

VBA

SQL Server