メンテナンスの作成が続きましたので今回は「名称マスタリスト」を
作ってみましょう、
印刷といえば「区分マスタリスト」以来、2回目です。
名称マスタリストの説明。
名称マスタで入力したものを名称区分コードの値集合ソースごとに印刷をします。
"大分類"、"中分類"、"納品書見出し"、"請求書見出し"、
"納品書備考"、"請求書備考"、"回収方法"、"単位"ごとに印刷します
これらすべてを印刷するのが"全て印刷"となります。
名称マスタリスト
1.フォーム名、項目名の作成
フォームにマスタの項目を作成します。
1−1.フォーム名の設定
1.プロパティの内容
表題 名称マスタリスト
1−2.項目名の設定
1.名称区分コード(ラベル)
2.名称区分コード(コンボボックス)
プロパティの内容
名前 名称区分コード
書式 00
値集合タイプ
値リスト
値集合ソース
"全て印刷";"大分類";"中分類";
"納品書見出し";"請求書見出し";
"納品書備考";"請求書備考";
"回収方法";"単位"
列数 1
3.印刷年(テキストボックス)
プロパティの内容
名前 印刷年
書式 0000
使用可能
はい
編集ロック
いいえ
4.印刷月(テキストボックス)
プロパティの内容
名前 印刷月
書式 00
使用可能
はい
編集ロック
いいえ
5.印刷日(テキストボックス)
プロパティの内容
名前 印刷日
書式 00
使用可能
はい
編集ロック
いいえ
6..印刷時間(テキストボックス)
プロパティの内容
名前 印刷時間
使用可能
はい
編集ロック
いいえ
1−3.ボタンの設定
1.プレビューボタン
名前 btnプレビュー
表題 プレビュー(F5)
2.印刷ボタン
名前 btn印刷
表題 印刷(F8)
3.終了ボタン
名前 btn終了
表題 終了(End)
-*-------*-------*-------*-------*-------*-------*-------*-------*-
2-1.formの処理
2-1.form → load
formのloadは、画面を開いた場合に1回だけ通る処理です。
Set cn = Application.CurrentProject.Connection
'--- 1
cn.CursorLocation = adUseClient
[印刷年].Enabled = True
'--- 2
[印刷月].Enabled = True
[印刷日].Enabled = True
[印刷部数].Enabled = True
tDate = Date '今日の日付を取得します。
Forms(cFormName_M)![印刷年] = Year(tDate)
Forms(cFormName_M)![印刷月] = Month(tDate)
Forms(cFormName_M)![印刷日] = Day(tDate)
Forms(cFormName_M)![印刷時間] = Format$(Hour(Time), "00")
& _
":" & Format$(Minute(Time), "00")
Forms(cFormName_M)![印刷部数] = 1
[btn印刷].Enabled = True
'--- 3
[btn終了].Enabled = True
[名称区分コード].SetFocus
'--- 4
* 処理の説明
1.データを接続します。
2.現在の日付を受け取りテキストボックスに送ります。
3.ボタンも使える状態にします。
4.名称区分コードにフォーカスをセットします。
General Declarations にtDateを作成します。
Dim tDate As Date
-*-------*-------*-------*-------*-------*-------*-------*-------*-
2-2.form → Unload
'開放
cn.Close
Set cn = Nothing
接続を開放します。
-*-------*-------*-------*-------*-------*-------*-------*-------*-
3-2.名称区分コードの処理
3-2.名称区分コード_GotFocus
[名称区分コード].Dropdown
If IsNull([名称区分コード]) Or Trim([名称区分コード]) & _
"" = "" Then
'下矢印を押すデフォルト値を出したいので
SendKeys "{DOWN}"
End If
form → load時で名称区分コードにSetFocusしています。
ここでGotFocus時にコンボボックの内容をすべて表示した
状態にします。
それがDropdownという命令です。
表示だけならDropdownだけでよいのですが、コンボボックの
欄が空白となります。
それでは、よくありません。
コンボボックに先頭の"全て印刷"をデフォルトでコンボに
入れるようにしたい。
そうすれば"全て印刷"の場合に印刷ボタンを
1回押せば印刷できます。
もし、そのようにしてないと↓を押して印刷ボタンを
押すということになります。
キーボード上の「↓」を押した状況にしたいその命令が
SendKeys "{DOWN}"です。
SendKeysはキーボードを入力したときと同様なことをさせます。
「↓」は"{DOWN}"となります。
それを実行するのは[名称区分コード]がnullかスペースの
場合にしなさいということをここではさせています。
例えば、
Aを押した処理をしたい場合は、SendKeys "A"
ENTERキーを押した処理をしたい場合は、SendKeys "{ENTER}"
F1キーを押した処理をしたい場合は、SendKeys "{F1}"
他にもまだたくさんあります。調べてみてください。
次回も名称マスタリストの作成です。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
ここで基本設計の組み立て方を習うことができます
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|