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


バックナンバー 【住所録ソフト編】 Vol.46
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

    ACCESSで作るシリーズ  【住所録ソフト編】

    発 行 : Yoshihisa Fukuda          2003.03.22 Vol.46

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回は、住所録印刷の仕組みとその解説です。
______________________________________
 □ 住所録印刷条件設定画面の解説。

Vol.42の「□ プログラムでコントロールの制御を行います。」のプログラムの解説
を行います。

1.フォームの[開く時]のイベントプロシージャ

Private Sub Form_Open(Cancel As Integer)
  Me.GroupCombo2.Enabled = False
  Me.SelectFromCombo.Enabled = False
  Me.SelectToCombo.Enabled = False
End Sub

(1)2行目の Me.GroupCombo2.Enabled = False はグループ化の2階層目のコンボ
   ボックスを使用不可にしています。
   これはフォームを開いた時はグループ化の1階層目は[なし]になっているので、
   1階層目が[なし]の場合、2階層目は指定できなくしています。

(2)3行目、4行目の Me.SelectFromCombo.Enabled = False と
   Me.SelectToCombo.Enabled = False は、50音抽出条件の開始と終了の50音
   の指定コンボボックスを使用不可にしています。
   これは、フォームを開いた時は、50音抽出条件は[全て]になっているので
   50音の開始、終了を使用できなくしています。

2.グループ1コンボボックスの[更新後処理]のイベントプロシージャ

Private Sub GroupCombo1_AfterUpdate()
  If Me.GroupCombo1 = "なし" Then
    Me.GroupCombo2.Enabled = False
  Else
    Me.GroupCombo2.Enabled = True
  End If
End Sub

(1)2行目の If Me.GroupCombo1 = "なし" Then はグループ1の指定が[なし]の
   場合を判別しています。

(2)3行目の Me.GroupCombo2.Enabled = False はグループ1が[なし]だった場合、
   グループ2のコンボボックスを使用不可にして、指定できなくしています。

(3)5行目の Me.GroupCombo2.Enabled = True はグループ1が[なし]でなかった
   場合で、グループ2のコンボボックスを使用可能にしています。

3.50音抽出条件オプショングループの[更新後処理]のイベントプロシージャ

Private Sub SelectFrame_AfterUpdate()
  If Me.SelectFrame = 1 Then
    Me.SelectFromCombo.Enabled = False
    Me.SelectToCombo.Enabled = False
  Else
    Me.SelectFromCombo.Enabled = True
    Me.SelectToCombo.Enabled = True
  End If
End Sub

(1)2行目の If Me.SelectFrame = 1 Then は50音抽出条件の指定が[全て]か
   [50音指定]かを判別しています。

(2)3行目、4行目は50音抽出条件の指定が[全て]の場合で、3行目の
   Me.SelectFromCombo.Enabled = False は開始のコンボボックスを、4行目の
   Me.SelectToCombo.Enabled = False は終了のコンボボックスをそれぞれ、
   使用不可にしています。

(3)6行目、7行目は50音抽出条件の指定が[50音指定]の場合で、6行目の
   Me.SelectFromCombo.Enabled = True は開始のコンボボックスを、7行目の
   Me.SelectToCombo.Enabled = True は終了のコンボボックスをそれぞれ使用
   可能にしています。

次に、Vol.44の「□ 住所録印刷指示画面の印刷ボタンにプログラムを記述する。」
のプログラムの解説を行います。

1.印刷ボタンの[クリック時]のイベントプロシージャ

Private Sub PrintBtn_Click()
On Error GoTo Err_PrintBtn_Click

  Dim stDocName As String

  Dim stLinkCriteria As String

  Call SetGroup
  stLinkCriteria = SetWhereStr

  stDocName = "AddressRep_W"
  DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria

Exit_PrintBtn_Click:
  Exit Sub

Err_PrintBtn_Click:
  MsgBox Err.Description
  Resume Exit_PrintBtn_Click

End Sub

(1)2行目の On Error GoTo Err_PrintBtn_Click はエラーが発生した場合の処理
   の流れを指定しています。
   この場合、エラーが発生したら Err_PrintBtn_Click: と言うラベルの行へ
   処理が飛びます。

(2)4行目と6行目は変数の宣言です。
   stDocName と言う変数と、stLinkCriteria と言う変数をそれぞれ文字列型で
   宣言しています。

(3)8行目の Call SetGroup は SetGroup と言うサブルーチンを呼び出しています。

(4)9行目の stLinkCriteria = SetWhereStr は SetWhereStr と言うサブルーチン
   を呼び出して、その返り値を stLinkCriteria と言う変数に代入しています。

(5)11行目の stDocName = "AddressRep_W" は stDocName と言う変数に文字列
   "AddressRep_W" を代入しています。

(6)12行目の DoCmd.OpenReport stDocName, acPreview, , stLinkCriteria は
   レポートをプレビューで開いています。
   開くレポートは第1引数の stDocName で(5)で代入した "AddressRep_W"
   になります。
   第2引数の acPreview がプレビューを意味します。

(7)14行目の Exit_PrintBtn_Click: はラベルです。

(8)15行目の Exit Sub は、このサブルーチン、すなわち印刷ボタンの[クリック
   時]のイベントプロシージャを終了します。

(9)17行目の Err_PrintBtn_Click: もラベルです。
   (1)で指定したように、エラーが発生した場合、このラベルの所に処理が
   移動します。

(10)18行目の MsgBox Err.Description はエラー時のエラーの内容をメッセージ
   ボックスで表示しています。

(11)19行目の Resume Exit_PrintBtn_Click は Exit_PrintBtn_Click:のラベル
   の位置から、プログラムを再開します。

今回はここまでです。

SetGroup と SetWhereStr の2つのサブルーチンは次回に解説します。

______________________________________
 □ お知らせ。

 ホームページのドメインについて。

 失効されると思われたドメインが、何とか失効を免れました。

 従来どおり、http://www.fsc-net.com でホームページを継続していきますので
 今後とも、よろしくお願いいたします。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□

◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元  :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
  ご質問等   :fukud@nifty.com

◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
  しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://www.fsc-net.com
◇ 登録・解除  :http://www.fsc-net.com

 Copyright(C) 2001-2003 Yoshihisa Fukuda All rights reserved.

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