Access(ADP & VBA)とMSDEで作るクライアントサーバーシステム(c/s)

 
実践テクニック、Accessで作るクラサバシステム



2008/03/04配信
 

第12コース  第3回 「売上入力の作成」




 

 ■メニュー

   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年以上の開発ノウハウを惜しみなく完全公開!

Mail:  (半角英数字)     Powered byまぐまぐ


HOME / お客様の声 / メルマガ / 販売管理ソフト教材 / 会社概要/ 特定商取引法/ お申し込み
 お問い合わせ / メルマガのご意見ご感想 / メルマガのバックナンバー/ プライバシーポリシー
 


 Copyright (c) 2001 ティウェア All rights reserved.