メールマガジン【アクセスで作るシリーズ】
バックナンバー 【会計ソフト編】 Vol.51
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【会計ソフト編】
発 行 : Yoshihisa Fukuda 2001. 4.28 Vol.51
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
前回はデータの参照をやってみました。
今回はレコードの追加、更新、削除する方法を解説します。
== ◇ 第5章 拡張機能 ====================
--------------------------------------
第6回 VBAでのテーブル操作(続き)
--------------------------------------
前回と同様に SAMPLE_DB.MDB というデーターベースの中に ABC_TABLE と言う
テーブルがあり FIELD_1(テキスト型)のフィールドがあるとしましょう。
今回は、新規のレコードを追加したり、FIELD_1 のデータを変更(更新)したり
また、レコードを削除したりするプログラムを作成してみましょう。
◆レコードを追加する
まず、最初にデータベースを開き、そのデーターベースオブジェクトを使用して
テーブルを開きレコードセットを獲得します。
これは前回と同様で、幾つかの書き方がありましたが以下の方法を使ってみます。
Dim SMPL_DB As Database
Dim ABC_T As Recordset
Set SMPL_DB = CurrentDb
Set ABC_T = SMPL_DB.OpenRecordset("ABC_TABLE")
では、レコードセットを使ってレコードの追加をしましょう。
まず、FIELD_1 に追加するデータを設定するのですが、その際の手順は以下の様に
なります。
(1)レコードセットに対してAddNewメソッドで新しいレコードを作成します。
(2)FIELD_1に追加するデータを代入します。
(3)Updateメソッドで追加したレコードを実際に登録します。
これをプログラムで書くと以下のようになります。
ABC_T.AddNew
ABC_T.Fields("FIELD_1").Value = "追加データ"
ABC_T.Update
最後のUpdateメソッドを行う前に、レコードを移動したりすると、追加は無効と
なります。(更新の場合も同様です)
◆データを変更(更新)する
では、次に現在登録されているデータを変更して見ましょう。
修正の手順は以下のようになります。
(1)修正したいデータのレコードをカレントレコードへ移動する。
(2)レコードセットに対してEditメソッドで修正可能状態にする。
(3)FIELD_1に変更したいデータを代入します。
(4)Updateメソッドで変更したレコードを実際に登録します。
これをプログラムで書くと以下のようになります。
ABC_T.MoveLast
ABC_T.Edit
ABC_T.Fields("FIELD_1").Value = "変更データ"
ABC_T.Update
このプログラムは、最後のデータを「変更データ」に書き換えています。
◆レコードを削除する
最後にレコード削除です。
これは、とても簡単でプログラムは以下のようになります。
ABC_T.MoveLast
ABC_T.Delete
削除したいレコードに移動して Delete メソッドで削除します。
要点としては AddNewメソッドと Editメソッドを使った時は、必ず最後にUpdate
メソッドを行う事です。
◆レコードセット、データベースのクローズ
最後にレコードセットとデータベースをクローズします。
また、会計ソフトでは抜けていますが、オブジェクトの関連付けの解除も行うのが
良いでしょう。
プログラムは以下のようになります。
ABC_T.Close
SMPL_DB.Close
Set ABC_T = Nothing
Set SMPL_DB = Nothing
レコードの追加、更新、削除もこうやって見れば簡単ですね。
でも、これがプログラムの中にあると、複雑に見えたりしてしまいます。
その理由の一つは、データの検索にあると思います。
レコードの更新や削除は、そのプログラム自体はとても簡単ですが、実際は更新する
データを探したり、削除するデータを探して、レコードを移動しなくてはいけません。
その部分がプログラムを複雑に見せているのだと思います。
--------------------------------------
次回は、データの検索方法を紹介します。
______________________________________
◆◇ Q&Aコーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
Q1.
KamokuSetFormを開いて最初の科目コードにカーソルがある状態でエンターキーを
打つと次のフィールドへ行かず、フォームが閉じてしまいます
(TABキーは使えます)。
エンターキーの設定(ツールーオプション)は「次のフィールド」になっていますし、
プロパティでは「既定」、タブストップは「はい」で問題ないと思うのですが、
なぜフォームが閉じるのかわかりません。
A1.
KamokuSetForm の[閉じる]ボタンの[既定のボタン]プロパティが[はい]になって
いるとご質問の現象が起こります。
[既定のボタン]プロパティとは、ボタンにフォーカスが無い時でもENTERキーで
動作できるようにするプロパティで、何時でもENTERキーで動作させたいボタンが
ある場合などに用います。
KamokuSetForm の[閉じる]ボタンの[既定のボタン]プロパティを[いいえ]にすれば
解決します。
______________________________________
◆◇ お知らせ ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
ゴールデンウィークを活用して、ホームページの引越を行う予定です。
新しいURLは、まだ正式に決めていませんが、決まり次第、皆様にお知らせします。
また、ゴールデンウィーク中にアンケートをお願いするかも知れませんので、
その際には、是非ご協力をお願いいたします。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【会計ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :y.fukuda@ro.bekkoame.ne.jp
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000030446)
◇ バックナンバー:http://www.bekkoame.ne.jp/ro/y.fukuda/
◇ 登録・解除 :http://www.bekkoame.ne.jp/ro/y.fukuda/
Copyright(C) 2000-2001 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【会計ソフト編】
発 行 : Yoshihisa Fukuda 2001. 4.28 Vol.51
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
前回はデータの参照をやってみました。
今回はレコードの追加、更新、削除する方法を解説します。
== ◇ 第5章 拡張機能 ====================
--------------------------------------
第6回 VBAでのテーブル操作(続き)
--------------------------------------
前回と同様に SAMPLE_DB.MDB というデーターベースの中に ABC_TABLE と言う
テーブルがあり FIELD_1(テキスト型)のフィールドがあるとしましょう。
今回は、新規のレコードを追加したり、FIELD_1 のデータを変更(更新)したり
また、レコードを削除したりするプログラムを作成してみましょう。
◆レコードを追加する
まず、最初にデータベースを開き、そのデーターベースオブジェクトを使用して
テーブルを開きレコードセットを獲得します。
これは前回と同様で、幾つかの書き方がありましたが以下の方法を使ってみます。
Dim SMPL_DB As Database
Dim ABC_T As Recordset
Set SMPL_DB = CurrentDb
Set ABC_T = SMPL_DB.OpenRecordset("ABC_TABLE")
では、レコードセットを使ってレコードの追加をしましょう。
まず、FIELD_1 に追加するデータを設定するのですが、その際の手順は以下の様に
なります。
(1)レコードセットに対してAddNewメソッドで新しいレコードを作成します。
(2)FIELD_1に追加するデータを代入します。
(3)Updateメソッドで追加したレコードを実際に登録します。
これをプログラムで書くと以下のようになります。
ABC_T.AddNew
ABC_T.Fields("FIELD_1").Value = "追加データ"
ABC_T.Update
最後のUpdateメソッドを行う前に、レコードを移動したりすると、追加は無効と
なります。(更新の場合も同様です)
◆データを変更(更新)する
では、次に現在登録されているデータを変更して見ましょう。
修正の手順は以下のようになります。
(1)修正したいデータのレコードをカレントレコードへ移動する。
(2)レコードセットに対してEditメソッドで修正可能状態にする。
(3)FIELD_1に変更したいデータを代入します。
(4)Updateメソッドで変更したレコードを実際に登録します。
これをプログラムで書くと以下のようになります。
ABC_T.MoveLast
ABC_T.Edit
ABC_T.Fields("FIELD_1").Value = "変更データ"
ABC_T.Update
このプログラムは、最後のデータを「変更データ」に書き換えています。
◆レコードを削除する
最後にレコード削除です。
これは、とても簡単でプログラムは以下のようになります。
ABC_T.MoveLast
ABC_T.Delete
削除したいレコードに移動して Delete メソッドで削除します。
要点としては AddNewメソッドと Editメソッドを使った時は、必ず最後にUpdate
メソッドを行う事です。
◆レコードセット、データベースのクローズ
最後にレコードセットとデータベースをクローズします。
また、会計ソフトでは抜けていますが、オブジェクトの関連付けの解除も行うのが
良いでしょう。
プログラムは以下のようになります。
ABC_T.Close
SMPL_DB.Close
Set ABC_T = Nothing
Set SMPL_DB = Nothing
レコードの追加、更新、削除もこうやって見れば簡単ですね。
でも、これがプログラムの中にあると、複雑に見えたりしてしまいます。
その理由の一つは、データの検索にあると思います。
レコードの更新や削除は、そのプログラム自体はとても簡単ですが、実際は更新する
データを探したり、削除するデータを探して、レコードを移動しなくてはいけません。
その部分がプログラムを複雑に見せているのだと思います。
--------------------------------------
次回は、データの検索方法を紹介します。
______________________________________
◆◇ Q&Aコーナー ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
Q1.
KamokuSetFormを開いて最初の科目コードにカーソルがある状態でエンターキーを
打つと次のフィールドへ行かず、フォームが閉じてしまいます
(TABキーは使えます)。
エンターキーの設定(ツールーオプション)は「次のフィールド」になっていますし、
プロパティでは「既定」、タブストップは「はい」で問題ないと思うのですが、
なぜフォームが閉じるのかわかりません。
A1.
KamokuSetForm の[閉じる]ボタンの[既定のボタン]プロパティが[はい]になって
いるとご質問の現象が起こります。
[既定のボタン]プロパティとは、ボタンにフォーカスが無い時でもENTERキーで
動作できるようにするプロパティで、何時でもENTERキーで動作させたいボタンが
ある場合などに用います。
KamokuSetForm の[閉じる]ボタンの[既定のボタン]プロパティを[いいえ]にすれば
解決します。
______________________________________
◆◇ お知らせ ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
ゴールデンウィークを活用して、ホームページの引越を行う予定です。
新しいURLは、まだ正式に決めていませんが、決まり次第、皆様にお知らせします。
また、ゴールデンウィーク中にアンケートをお願いするかも知れませんので、
その際には、是非ご協力をお願いいたします。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【会計ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :y.fukuda@ro.bekkoame.ne.jp
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000030446)
◇ バックナンバー:http://www.bekkoame.ne.jp/ro/y.fukuda/
◇ 登録・解除 :http://www.bekkoame.ne.jp/ro/y.fukuda/
Copyright(C) 2000-2001 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□