メールマガジン【アクセスで作るシリーズ】


バックナンバー 【会計ソフト編】 Vol.47
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

    ACCESSで作るシリーズ  【会計ソフト編】

    発 行 : Yoshihisa Fukuda          2001. 3.24 Vol.47

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は仕訳入力の表示順序を指定できる様にしましょう。

== ◇ 第5章 拡張機能     ====================

--------------------------------------
 第2回 仕訳入力の表示順序指定
--------------------------------------
仕訳入力の表示順序をコンボボックスで指定できる様にしましょう。

1.データベースウィンドウの[フォーム]タブで[SiwakeForm]を選択し、デザイン
  ウィンドウで開きます。
2.次に、フォームフッターの前回作成した表示期間の右側にコンボボックスを
  作成しましょう。
 (1)ツールバーのコンボボックスを選択し、前回作成したテキストボックスの
    右横当たりをクリックします。
    (コントロールウィザードは解除しておきましょう)
 (2)作成したコンボボックスに、以下のプロパティを設定します。

    名前      ・・・ DispSort
    値集合タイプ  ・・・ 値リスト
    値集合ソース  ・・・ 0;指定無し;1;伝票番号順;2;伝票日付順
    列数      ・・・ 2
    列幅      ・・・ 0cm;XXXcm(XXXは[幅]プロパティの値)
    規定値     ・・・ 0

 (4)以下の様にレイアウトを整えます。
    ----------------------------------
     [閉じる]      [  ]~[  ]    表示順 [F1  ]
    ----------------------------------
    F1:DispSort

3.コンボボックスが作成できたら、次に仕訳データの表示順を指定しましょう。
 (1)[DispSort]コンボボックスを選択します。
 (2)[更新後処理]プロパティにカーソルを移動し、右側の[▼]ボタンをクリック
    して[イベントプロシージャ]を選択します。
 (3)右端の[...]ボタンをクリックしてモジュールウィンドウを開きます。
 (4)Private Sub DispSort_AfterUpdate() と End Sub の間に以下のコード
    を記述します。

    If DispSort.Value = 1 Then
      Me.OrderBy = ""
      Me.OrderByOn = False
    Else
      If DispSort.Value = 1 Then
        Me.OrderBy = "DenpyoNo"
      End If
      If DispSort.Value = 2 Then
        Me.OrderBy = "DenpyoDate"
      End If
      Me.OrderByOn = True
    End If

 (5)モジュールウィンドウを保存して終了します。

これで表示順の指定ができます。
仕訳入力を開いて適当なデータを入力します。
表示順が切り替わるのを確認するため、入力するデータは伝票番号、伝票日付をバラ
バラに入力しましょう。

入力したら、コンボボックスで[伝票番号順][伝票日付順][指定無し]と選択してみま
しょう。
[指定無し]を選択すると、入力した順番で表示されます。
では、伝票番号順に表示してから、フォームを終了しましょう。
そして、もう一度仕訳入力のフォームを開いてみます。
すると、コンボボックスは[指定無し]になっているのに、表示は伝票番号順に表示
されていますね。

何故でしょうか?
では、フォームを一度閉じてから、今度はデザインウィンドウで開いてみます。

そして、フォームを選択した状態で[並べ替え]プロパティを見てみましょう。
ここに[DenpyoNo]と入っていますね。
実は、コンボボックスの[更新後処理]プロパティに書いたモジュールのコードで
Me.OrderBy = とありましたが、これが[並べ替え]プロパティの事なのです。

コンボボックスを伝票番号順にすると、この[並べ替え]プロパティに[DenpyoNo]と
入ります。
[並べ替え]プロパティはSQL文の ORDER BY句を記述します。
そして、プログラムで設定した内容は、フォームを閉じても、そのまま残ります。

このままでは、コンボボックスが[指定無し]なのに実際の表示が伝票番号順となって
しまうので、以下の手順でプログラムを追加しましょう。

1.データベースウィンドウの[フォーム]タブで[SiwakeForm]を選択し、デザイン
  ウィンドウで開きます。
2.フォームを選択した状態で、[開く時]プロパティにカーソルを移動し、右端の
  [...]ボタンをクリックします。(既に[イベントプロシージャ]が設定済み)
3.Private Sub Form_Open(Cancel As Integer) と End Subの間に、以前に記述
  した Me.Requery があるので、その前に Me.OrderBy = "" と記述します。

  すなわち

  Private Sub Form_Open(Cancel As Integer)
    Me.OrderBy = ""
    Me.Requery
  End Sub

  となります。
4.モジュールウィンドウを保存して終了します。

これで、最初に開いたときは、必ず表示順が[指定無し]で表示される様になりました。

--------------------------------------
次回も、仕訳入力の拡張しましょう。
摘要の入力フィールドを少し変えてみたいと思います。
______________________________________
◆◇ Q&Aコーナー    ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

 今回はありません。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ 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.

◇転載について
 このメールマガジンの無断転載などは、一切禁止です。
 転載をご希望の方は、事前にメールで連絡をください。
◇免責
 このメールマガジン及びホームページの内容による、いかなる損害、障害などに
 関して発行者は一切の責任を負いません。
 掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□