■メニュー
1.売上入力の作成(13回目)
===================================================================
こんにちは、ティウェアの高橋です。
売上入力の作成の13回目です。
では、はじめましょう。
------------------------------------------------------------------
伝票番号のKeyDownから得意先明細問い合せ処理となります。
詳しい内容は前回号をご覧下さい。
得意先明細問い合せのFrom Loadの説明です。
Set cn = Application.CurrentProject.Connection
cn.CursorLocation = adUseClient
Forms(cFormName_M)![sta日付年].Enabled = True
Forms(cFormName_M)![sta日付年].Locked = False
Forms(cFormName_M)![sta日付年].BackColor = 16777215
Forms(cFormName_M)![sta日付月].Enabled = True
Forms(cFormName_M)![sta日付月].Locked = False
Forms(cFormName_M)![sta日付月].BackColor = 16777215
Forms(cFormName_M)![sta日付日].Enabled = True
Forms(cFormName_M)![sta日付日].Locked = False
Forms(cFormName_M)![sta日付日].BackColor = 16777215
Forms(cFormName_M)![end日付年].Enabled = True
Forms(cFormName_M)![end日付年].Locked = False
Forms(cFormName_M)![end日付年].BackColor = 16777215
Forms(cFormName_M)![end日付月].Enabled = True
Forms(cFormName_M)![end日付月].Locked = False
Forms(cFormName_M)![end日付月].BackColor = 16777215
Forms(cFormName_M)![end日付日].Enabled = True
Forms(cFormName_M)![end日付日].Locked = False
Forms(cFormName_M)![end日付日].BackColor = 16777215
Forms(cFormName_M)![sta営業所コード].Enabled = True
Forms(cFormName_M)![sta営業所コード].Locked = False
Forms(cFormName_M)![sta営業所コード].BackColor = 16777215
Forms(cFormName_M)![sta得意先コード].Enabled = True
Forms(cFormName_M)![sta得意先コード].Locked = False
Forms(cFormName_M)![sta得意先コード].BackColor = 16777215
[btn取消].Enabled = False
[btn終了].Enabled = True
[sta日付年] = 2000
[sta日付月] = 1
[sta日付日] = 1
[end日付年] = Year(Date)
[end日付月] = Month(Date)
[end日付日] = Day(Date)
[sta営業所コード] = ""
[sta得意先コード] = ""
[営業所名] = ""
[得意先名] = ""
Set Me.Recordset = Nothing
Me![伝票区分].ControlSource = ""
Me![伝票日付].ControlSource = ""
Me![伝票番号].ControlSource = ""
Me![商品名].ControlSource = ""
Me![区分名].ControlSource = ""
Me![数量].ControlSource = ""
Me![売上金額].ControlSource = ""
Me![入金金額].ControlSource = ""
Me![略名].ControlSource = ""
[sta営業所コード].SetFocus
sta日付年、sta日付月などのBackColorは白色です。
初期値を項目に入れています。
日付は2000/01/01から今日の日付を代入しています。
--------------------------------------------------------------------
Form_KeyDownの処理です。
On Error GoTo Form_KeyDown_err
ftKeyCode = KeyCode
Select Case KeyCode
Case 121 '取消(F10)
If Forms(cFormName_M)!btn取消.Enabled = True Then
Forms(cFormName_M)!btn取消.SetFocus
SendKeys "{ENTER}"
End If
Case 35 '終了(END)
If btn終了.Enabled = True Then
btn終了.SetFocus
SendKeys "{ENTER}"
End If
End Select
Exit Sub
Form_KeyDown_err:
MsgBox "エラーが発生しました。再度、見直してください。", vbCritical, "エラー"
--------------------------------------------------------------------
Form_Unloadの処理です。
cn.Close
Set cn = Nothing
--------------------------------------------------------------------
sta営業所コード_KeyDownの処理です。
KeyDownすると、ここから「得意先問い合せ」へ移動します。
On Error GoTo Err_sta営業所コード_KeyDown
If KeyCode <> 123 Then
Exit Sub
End If
If [sta営業所コード].Enabled = False Then
Exit Sub
End If
form_modoriname = "得意先明細問い合せ"
stDocName = "得意先問い合せ"
form_modoricontrols_name_1 = "sta営業所コード"
form_modoricontrols_name_2 = "sta得意先コード"
form_modoricontrols_name_setfocus = "sta得意先コード"
Me.Visible = False
DoCmd.OpenForm stDocName
Forms(stDocName)![カナ名].SetFocus
Exit_sta営業所コード_KeyDown:
Exit Sub
Err_sta営業所コード_KeyDown:
MsgBox "エラーナンバー " & Err.Number & _
vbCrLf & _
Err.Description, vbCritical, "エラー"
Resume Exit_sta営業所コード_KeyDown
戻ってくるフォーム名を退避します、売上入力ではなく得意先明細問い合せ
となります。
form_modoriname = "得意先明細問い合せ"
検索問い合せへ移動するのは、得意先問い合せとなります。
stDocName = "得意先問い合せ"
戻りフォームの項目を退避します。
form_modoricontrols_name_1 = "sta営業所コード"
form_modoricontrols_name_2 = "sta得意先コード"
戻りフォームのセットフォーカスする項目を退避します。
form_modoricontrols_name_setfocus = "sta得意先コード"
DoCmd.OpenForm stDocName 得意先問い合せをオープンします。
ここまでの処理をちょっと整理してみましょう。
何をさせたいのか、一言でいうと伝票明細を売上入力に表示させたいのです。
流れは以下のとおりです。
売上入力の伝票番号をKeyDown → 得意先明細問い合せへ移動
→ 得意先明細問い合せ → 得意先問い合せへ移動 →
得意先名を取得 → 得意先明細問い合せ → 伝票明細を表示
→ 該当する伝票明細のところでKeyDown → 伝票明細を取得
売上入力に伝票明細を表示
でも、この処理、どこの得意先の伝票なのかがわからなければ
無意味な処理となります。
どこの得意先なのかもわからなければ、売上日報で日付順に並べて
プレビュー、または印刷して伝票を探すしかありません。
次回も売上入力です。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|