アクセスの中でSQL文を使う(削除クエリ)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol160

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

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

┃【03 - 編集後記    】

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

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

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

今回は、

「アクセスの中でSQL文を使う(削除クエリ)」

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




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

【02 - トピックス】: アクセスの中でSQL文を使う(削除クエリ)

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

前回、VBAの中で、パラメータクエリのSQL文を在庫データを例にとって、説明しましたが、VBAの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文を作ってVBAで動かすという説明をしました。
でも、実際にやると動きませんでした。
原因は、まだわかっていません。

それで、「削除クエリ」を使った方法について説明します。

  • クエリのデザインで、「削除クエリ」をクリックします。

  • 削除するテーブルは、「T_入出庫テーブル」です。
    フィールド:ID
    テーブル:T_入出庫テーブル
    レコードの削除:Where
    抽出条件:In (SELECT ID FROM Q_在庫クエリ2 WHERE 在庫数=0)

    にして、保存します。

  • このSQL文(SQLビュー)は、

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

    です。

    この「削除クエリ」を実行すると確認の画面が表示されます。
    「はい」で実行されます。

上の、SQL文を、VBAで動かすと、動きませんでした。
自分のデータを使って自分を削除するので、ダメだったのかも知れません。

こういう時は、クエリの中の「削除クエリ」を使った方がよいかも知れません。

前回の、メルマガのように、実際にやった方がいましたら、申し訳ありませんでした。
今回の方法を使用してください。

参考にしてください。



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

連休も終わりました。
ゆっくり休めましたか。

茨城の方が竜巻がおこっていますね。
天候が不安定です。

天候が変わるときは気を付けた方がよいですね。


◆私がアクセスをマスターできたのは!!
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)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



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

アクセス全体

VBA

SQL Server