すぐ使えるADO.NET

【Visual BasicによるADO.NETデータベースプログラミング】

本の紹介

バックナンバー:VB.NETデータベースプログラミング

ADO.NETの基本的なプログラミングを中心に、すぐ使えるサンプルプログラム満載です。




【第3号】

 第3号(2004.4.11発行)
====================================================================
         ★★ VB.NETデータベースプログラミング奮闘記 ★★

--------------------------------------------------------------------
ADO.NETの基本的なプログラミングを中心に掲載します。
末永くご購読の程よろしくお願い申し上げます。

すぐ使えるADO.NETの研究 --> サンプルプログラム満載
                            http://park5.wakwak.com/‾weblab/
====================================================================
                        -----【目次】-----

1. VB.NETワンポイント:MessageBox.Show
2. テーブル設計:将来変更されるかもしれない項目を扱う場合(上)
3. VB.NETワンポイントオブジェクト指向:Newキーワード
4. 次号予告

--------------------------------------------------------------------
           ■■ VB.NETワンポイント:MessageBox.Show ■■

VB.NETでは、メッセージボックスを表示するときに,MsgBox関数のほかに、
.NET Frameworkクラスライブラリを利用して、MessageBox.Showメソッドも
使うことができます。MsgBox関数は内部で、MessageBox.Showメソッドを呼
び出しています。

マイクロソフトは、MessageBox.Showを使うことを推奨しています。
このメールマガジンも、MessageBox.Showに統一していきます。

MessageBox.Showメソッドと、MsgBox関数のコーディング例を載せておきま
すので、参考にして下さい。

--【コーディング例】--------------------------------------

    '---------- ●MessageBox.Showメソッド● ----------

    'メッセージボックスに表示するテキスト
    Dim message As String = "Hello World"

    'タイトルバーに表示するテキスト
    Dim caption As String = "MessageBox.Showメソッド"

    '表示するボタン([OK]ボタンと[キャンセル]ボタン)
    Dim buttons As MessageBoxButtons = MessageBoxButtons.OKCancel

    '表示するアイコン(円で囲まれた小文字の'i')
    Dim icon As MessageBoxIcon = MessageBoxIcon.Information

    'フォーカスを設定するボタン(2番目のボタン)
    Dim defaultBtn As MessageBoxDefaultButton = _
                                  MessageBoxDefaultButton.Button2

    'タイトルバーに表示なし
    '[OK]ボタン表示
    '[OK]ボタンにフォーカス
    MessageBox.Show(message)

    'タイトルバーにテキスト表示
    '[OK]ボタン表示
    '[OK]ボタンにフォーカス
    MessageBox.Show(message, caption)

    'タイトルバーにテキスト表示
    '[OK]ボタンと[キャンセル]ボタン表示
    '[OK]ボタンにフォーカス
    MessageBox.Show(message, caption, buttons)

    'タイトルバーにテキスト表示
    '[OK]ボタンと[キャンセル]ボタン表示
    'アイコン表示
    '[OK]ボタンにフォーカス
    MessageBox.Show(message, caption, buttons, icon)

    'タイトルバーにテキスト表示
    '[OK]ボタンと[キャンセル]ボタン表示
    'アイコン表示
    '[キャンセル]ボタンにフォーカスを設定
    MessageBox.Show(message, caption, buttons, icon, defaultBtn)

    '---------- ●MsgBox関数● ----------

    'メッセージボックスに表示するテキスト
    Dim message2 As String = "こんにちは"

    'タイトルバーに表示するテキスト
    Dim caption2 As String = "MsgBox関数"

    'メッセージボックスのスタイル
    '[OK]ボタンと[キャンセル]ボタン
    'アイコン表示
    '[キャンセル]ボタンにフォーカスを設定
    Dim style As MsgBoxStyle = MsgBoxStyle.OKCancel Or _
    MsgBoxStyle.Information Or MsgBoxStyle.DefaultButton2

    '関数のリターン値:ユーザーが選択したボタン
    Dim retMsgBoxResult As MsgBoxResult

    retMsgBoxResult = MsgBox(message2, style, caption2)

--------------------------------------------------------------------
■■ テーブル設計:将来変更されるかもしれない項目を扱う場合(上) ■■

商品単価、消費税率、預金利率のように将来変更されるかもしれない項目を
扱う場合には、プログラムの修正がないように、通常これらの値はテーブル
に持つようにします。

たとえば、次のような「消費税率テーブル」について考えてみます。

         【消費税率テ−ブル】
key フィールド名  データ型      値要求
-----------------------------------------
●  消費税率ID オートナンバー型  −
−  消費税率  通貨型           はい
−  適用開始日 日付/時刻型     いいえ
−  適用終了日 日付/時刻型     いいえ

適用開始日及び適用終了日は、レコードを抽出するために必要です。

このテーブルには、現在既に次のレコードが登録されているとします。
消費税導入前のレコードの適用開始日にはNULL値を、
また最新レコードの適用終了日にもNULL値を設定しておきます。

  消費税率ID  消費税率 適用開始日 適用終了日
        1       0.00     NULL値   1989/3/31
        2       0.03    1989/4/1  1997/3/31
        3       0.05    1997/4/1   NULL値

ここに、2004年5月1日から消費税率が7%に変更なると仮定して、4月上旬に
1レコードを追加登録すると、

  消費税率ID  消費税率 適用開始日 適用終了日
        1       0.00     NULL値   1989/3/31
        2       0.03    1989/4/1  1997/3/31
        3       0.05    1997/4/1  2004/4/30
        4       0.07    2004/5/1   NULL値

となります。3番目のレコードのNULL値は、2004/4/30で更新しておきます。

ここで5月初旬に4月分の請求書を発行することを考えてみます。消費税率は
5%ですから、3番目のレコードを抽出して、請求金額を計算する必要があり
ます。

3番目のレコードは、SELECT文のWHERE句で、適用開始日と適用終了日の範囲
指定の条件式を記述すれば、抽出することができます。SQL文は次のように
なります。

 SELECT * FROM 消費税率テーブル
 WHERE (適用開始日 IS NULL AND @torihikiBi <= 適用終了日)
 OR (適用開始日 <= @torihikiBi AND @torihikiBi <= 適用終了日)
 OR (適用開始日 <= @torihikiBi AND 適用終了日 IS NULL)

適用開始日と適用終了日のNULL値の項目に値を設定すれば、SQL文は次のよ
うに簡単になります。

 SELECT * FROM 消費税率テーブル
 WHERE 適用開始日 <= @torihikiBi AND @torihikiBi <= 適用終了日

@torihikiBiには、コマンドパラメータで、取引日(売上日)をセットします。

詳細は、次号のサンプルプログラムの中で説明します。

--------------------------------------------------------------------
     ■■ VB.NETワンポイントオブジェクト指向:Newキーワード ■■

オブジェクトの生成時には、 Newキーワードを使って、インスタンスを生成
します。

1. 宣言と同時に、Newキーワードを使って、インスタンスを生成する
   Dim oConn As New OleDbConnection()  または、
   Dim oConn As OleDbConnection = New OleDbConnection()

   1番目の宣言方法は2番目の宣言方法の省略形です。

2. 宣言だけした後に、Newキーワードを使って、インスタンスを生成する
   Dim oConn As OleDbConnection
   oConn = New OleDbConnection()

   Dim oConn As OleDbConnection と宣言しただけで、oConnを使用すると、
   インスタンスが生成されていないので、実行時にエラーになります。注
   意してください。

--------------------------------------------------------------------
                      ■■ 次号予告 ■■

第4号(3号発行日から10日以内を予定)  月3回位発行予定

1. VB.NETワンポイント
2. テーブル設計:将来変更されるかもしれない項目を扱う場合(下)
                         −−サンプルプログラム−−
3. VB.NETワンポイントオブジェクト指向

====================================================================
VB.NET データベースプログラミング奮闘記    第3号(2004.4.11)
          http://park5.wakwak.com/‾weblab/
--------------------------------------------------------------------
このメールマガジン(マガジンID: 0000128094)は、
インターネットの本屋さん『まぐまぐ』から配信されています。
  http://www.mag2.com/

【購読中止の方法】購読の中止は次のホームページからお願い致します。
  http://park5.wakwak.com/‾weblab/
  http://www.mag2.com/m/0000128094.htm
--------------------------------------------------------------------
このメールマガジン及び、すぐ使えるADO.NETの研究ホームページで公開し
ているソースプログラム・データの利用により生じた損害等については、発
行者は一切責任を負いません。
ソースプログラムの再利用は自由ですが、著作権は発行者が所有します。
このメールマガジン及び、すぐ使えるADO.NETの研究ホームページに掲載さ
れている会社名・製品名等は、各社の登録商標または商標です。
====================================================================

Copyright© すぐ使えるADO.NET. All rights reserved.