Access(ADP & VBA)とMSDEで作るクライアントサーバーシステム(c/s)

 
実践テクニック、Accessで作るクラサバシステム



2003/02/05配信
 

第1コース  第9回 「ストアドプロシージャについて」




 

■ ストアドプロシージャについて(3回目)

  前回に引き続き、ストアドプロシージャから担当者マスタに変更、
  削除をしてみます。
  今回は少し長くなりますが、ストアドプロシージャの最終回となります。


■ 変更するストアドプロシージャ

 1.担当者マスタを1レコードを変更するストアドプロシージャを作ります。

   ・構文
   
update  テーブル名 set 列名1=式1,列名2=式2, ・・・
[where 検索条件]
   
    set 以下に記述された列名が式の値で更新されます。
    where を指定しないとテーブル名の全てのレコードが対象
    になります。

   では、早速作ってみましょう。

   ストアドプロシージャの「デザインを使用してストアドプロシージャ
   を作成する」をダブルクリックします。

   下記のsp_担当者マスタ_updのストアドプロシージャをコピーペースト
   して貼り付けます。

  
Alter Procedure sp_担当者マスタ_upd
(
@担当者コード int,
@担当者名 varchar (20),
@カナ名 varchar (20)
)
As
update 担当者マスタ
set 担当者コード=@担当者コード,担当者名=@担当者名,カナ名=@カナ名
where 担当者コード=@担当者コード
return



    「sp_担当者マスタ_upd」 の名前で保存します。

 実行してみましょう。
 
 2.「sp_担当者マスタ_upd」をダブルクリックします。

   「パラメータの入力」の画面が出てきますので入力していきます。

   2−1.担当者コードに 「1」 と入力して「OK」をクリックします。
       
   2−2.担当者名に 「田中」 と入力して「OK」をクリックします。
       
   2−3.カナ名に 「タナカ」 と入力して「OK」をクリックします。

   2−4.「ストアドプロシージャは実行されましたが、レコードは
        返されませんでした」というメッセージが表示されます。
        「OK」をクリックします。

   実際に変更できているか、確認してみましょう。

   担当者マスタのテーブルをダブルクリックしてみると前回登録されて
   いた担当者名が ”高橋” から ”田中” に、カナ名が ”タカハシ” 
   から ”タナカ” に変更されています。

■ 削除するストアドプロシージャ

 3.担当者マスタを1レコードを削除するストアドプロシージャを作ります。

   ・構文

delete  テーブル名
[where 検索条件]

    where を指定しないとテーブル名の全レコードが削除されます
        から気をつけてください。

   では、早速作ってみましょう。

   ストアドプロシージャの「デザインを使用してストアドプロシージャを
   作成する」をダブルクリックします。

   下記のsp_担当者マスタ_delのストアドプロシージャをコピーペースト
   して貼り付けます。

  
Alter Procedure sp_担当者マスタ_del
(
@担当者コード int
)
As
delete 担当者マスタ
where 担当者コード = @担当者コード
return



    「sp_担当者マスタ_del」 の名前で保存します。

 実行してみましょう。
 
 4.「sp_担当者マスタ_del」をダブルクリックします。

   「パラメータの入力」の画面が出てきますので入力していきます。
 
   4−1.担当者コードに 「1」 と入力して「OK」をクリックします。
        
   4−2.「ストアドプロシージャは実行されましたが、レコードは
        返されませんでした」というメッセージが表示されます。
        「OK」をクリックします。

   実際に削除されているか、確認してみましょう。

■ 対象となる複数レコードを取得するストアドプロシージャ

 5.担当者マスタリスト画面から範囲指定した担当者コードを入力して
   印刷させるストアドプロシージャです。

   これを行う前に、前回作成した「書き込むストアドプロシージャ」で
   担当者を5、6人ほど登録して始めて下さい。

   では、早速作ってみましょう。

   ストアドプロシージャの「デザインを使用してストアドプロシージャを
   作成する」をダブルクリックします。

   下記のrp_sp_担当者マスタリスト_コード順のストアドプロシージャを
   コピーペーストして貼り付けます。


Alter Procedure rp_sp_担当者マスタリスト_コード順
(
@sta担当者コード int,
@end担当者コード int
)
As
SELECT *
FROM 担当者マスタ
WHERE (担当者マスタ.担当者コード >= @sta担当者コード ) and
(担当者マスタ.担当者コード <= @end担当者コード )
order by 担当者マスタ.担当者コード
return


    「rp_sp_担当者マスタリスト_コード順」 の名前で保存します。

 実行してみましょう。
 
 6.「rp_sp_担当者マスタリスト_コード順」をダブルクリックします。

   「パラメータの入力」の画面が出てきますので入力していきます。

   6−1.「sta担当者コード」に読み出したい先頭の担当者コードを
       入力して「OK」をクリックします。

   6−2.「end担当者コード」に読み出したい最終の担当者コードを
       入力して「OK」をクリックします

   範囲指定した担当者のみが読み出せたと思います。

■ ストアドプロシージャのまとめ

  ストアドプロシージャで担当者マスタを使って処理をしました。

  1.データを読み込むストアドプロシージャを作成しました。
  2.データを書き込みむストアドプロシージャを作成しました。
  3.データを変更するストアドプロシージャを作成しました。
  4.データを削除するストアドプロシージャを作成しました。
  5.対象となる複数レコードを取得するストアドプロシージャを
    作成しました。
    (複数の条件を指定して必要なデータだけを取得するものです)

  データの処理は、これらを使えば作成できます。

  フォームにデータ項目を作成し、その項目からストアドプロシージャの
  項目に送り、これらの作成したストアドプロシージャをVBAに記述すれば
  担当者マスタのデータを登録、変更、削除、読み込むことができます。

  また、担当者マスタリストでは、担当者コードの項目を2つ作れば
  リストに必要な担当者のみ印刷できます。

  ストアドプロシージャで重要なことは作成した物を、「パラメータの入力」
  の画面で直接入力してみて自分の思ったとおりにできているかを
  確認してみることです。

  *注意
     ストアドプロシージャで記述する際、全角スペースはエラー
     になります。
     スペースを入れる場合は、半角スペースで行ってください。
     (例)エラーメッセージは下記のようになります。
        「ADOエラー:行 10: ’ ’の近くに不正な構文が
         あります。」上から数えて10行目に全角スペースが
         あることを意味しています。

  システムを作成する人により、SQLの記述に難易度差はあります。
  でも、1〜5を駆使することにより、例え高度なSQLを使わなくても
  データの処理(加工)をすることは可能となります。

  まったく高度なSQLを知らなくてもとは、決して言いません。
  ですから、SQLの習得はご自身でされてください。
  自分が理解できる本を選んで学んでください。

  今回、ストアドプロシージャを3回に分けて担当者マスタを用いて
  解説しました。

 次回は、第1コースの最終回(第10回)となります。
 マクロの説明をします。

===================================================================

                ◆ 実践テクニック、Accessで作るクラサバシステム ◆

Accessを学習するなら、やっぱり実務処理として応用のきくクラサバシステム

  編集・構成:高橋浩
  提供・発行:ティウェア

http://www.1tware.com/index.html

Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築

※当メールマガジンに掲載された記事を許可なく転載することを禁じます。

===================================================================

実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)

SEが10年以上の開発ノウハウを惜しみなく完全公開!

Mail:  (半角英数字)     Powered byまぐまぐ


HOME / お客様の声 / メルマガ / 販売管理ソフト教材 / 会社概要/ 特定商取引法/ お申し込み
 お問い合わせ / メルマガのご意見ご感想 / メルマガのバックナンバー/ プライバシーポリシー
 


 Copyright (c) 2001 ティウェア All rights reserved.