■メニュー
1.得意先残高マスタの作成(5回目)
===================================================================
こんにちは、ティウェアの高橋です。
得意先残高マスタの作成の5回目。
得意先マスタと同じ処理になります。
理解できている方は読み飛ばしてください。
では、はじめましょう。
------------------------------------------------------------------
今回は、表示させた問い合わせから得意先残高マスタメンテナンスに
データを移行させる処理とボタンの解説となります。
得意先名で解説します。
マウスを使う場合は、項目上でダブルクリックします。
キーボードでは、押したボタンで処理をします。
1.マウスをダブルクリックした処理
Sub 得意先名_DblClickを作成します。
Private Sub 得意先名_DblClick(Cancel As Integer)
On Error GoTo Err_得意先名_DblClick
If IsNull([得意先コード]) Or Trim([得意先コード]) & "" = "" Then
Exit Sub
End If
p_eigyocd = [営業所コード]
p_tokucd = [得意先コード]
'◎ポイント解説 1 -----*-----*-----*-----
Forms(form_modoriname).Controls(form_modoricontrols_name_1) = _
Format$(p_eigyocd, "00")
Forms(form_modoriname).Controls(form_modoricontrols_name_2) = _
Format$(p_tokucd, "00000")
'◎ポイント解説 2 -----*-----*-----*-----
Forms(form_modoriname).Controls( _
form_modoricontrols_name_setfocus).SetFocus
DoCmd.Close
DoCmd.OpenForm form_modoriname
Exit_得意先名_DblClick:
Exit Sub
Err_得意先名_DblClick:
MsgBox "エラーナンバー " & Err.Number & _
vbCrLf & _
Err.Description, vbCritical, "エラー"
Resume Exit_得意先名_DblClick
End Sub
1-1.◎ポイント解説 1 について
問い合せ画面で選択した得意先コードを得意先残高マスタメンテナンス
の得意先コードへに送る処理です。
form_modoriname = "得意先残高マスタメンテナンス"
form_modoricontrols_name_1 = "得意先コード"
それぞれの項目が入っています。
フォーム名を定数にいれてる場合は”.Controls”という
使い方をします。
そのフォームの項目である営業所コード、得意先コードに送ります。
営業所コードは2桁ですから、Format$(p_eigyocd, "00")
得意先コードは5桁ですからFormat$(p_tokucd, "00000")
1-2.◎ポイント解説 2 について
form_modoricontrols_name_setfocus = "得意先コード"
が入っています。
戻りフォームにセットフォーカスしている処理です。
もちろん、得意先残高マスタメンテナンスの得意先コードです。
自分自身(問い合せ画面)をクローズして得意先残高マスタメンテナンス
をオープンします。
------------------------------------------------------------------
2.キーボードを押した場合の処理です。
Sub 得意先名_KeyDownを作成します。
この処理は、得意先名_DblClickとほぼ同じです。
違うのは、KeyCode<>123 は、F12でなければということです。
F12キー以外で得意先コードはスペースかNullでなければ
処理を行います。
On Error GoTo Err_得意先名_KeyDown
If KeyCode <> 123 Then
Exit Sub
End If
If IsNull([得意先コード]) Or Trim([得意先コード]) & "" = "" Then
Exit Sub
End If
p_tokucd = [得意先コード]
Forms(form_modoriname).Controls(form_modoricontrols_name_1) = _
Format$(p_eigyocd, "00")
Forms(form_modoriname).Controls(form_modoricontrols_name_2) = _
Format$(p_tokucd, "00000")
Forms(form_modoriname).Controls( _
form_modoricontrols_name_setfocus).SetFocus
DoCmd.Close
DoCmd.OpenForm form_modoriname
Exit_得意先名_KeyDown:
Exit Sub
Err_得意先名_KeyDown:
MsgBox "エラーナンバー " & Err.Number & _
vbCrLf & _
Err.Description, vbCritical, "エラー"
Resume Exit_得意先名_KeyDown
End Sub
3.五十音のボタンについて
”あ”〜”ん”などのボタンを作りました。
各ボタン共通です。
mojiの部分に送ることばが違うだけです。
”あ”のボタンを作ります。
3-1.btnあ_Clickについて
moji = "あ"
ひらがな処理
------------------------------------------------------------------
3-2.ひらがな処理について
If Trim(moji) = "あ" Then
[カナ名] = [カナ名] & "ア"
GoTo job99
End If
If Trim(moji) = "い" Then
カナ名 = カナ名 & "イ"
GoTo job99
End If
「省略」
If Trim(moji) = "ー" Then
カナ名 = カナ名 & "ー"
GoTo job99
End If
job99:
Call 検索処理
*注意
メルマガでは、半角カタカナは不正文字となりますので
全角文字で解説します。
カナ名に入る文字は半角カタカナとなります。
"あ"の場合、[カナ名]に [カナ名] & "ア" を送ります。
その後、job99に飛んでCall 検索処理を行います。
------------------------------------------------------------------
4.btn1字消去について
カナ名(テキストボックス)項目を1文字を消去する
ボタンの処理です。
btn1字消去_Click()を作成します。
If IsNull([カナ名]) Or Trim([カナ名]) & "" = "" Then
mojisu = Int(0)
Else
mojisu = Len([カナ名])
End If
If mojisu <= Int(1) Then
[カナ名] = ""
Set Me.Recordset = Nothing
Me![営業所コード].ControlSource = ""
Me![得意先コード].ControlSource = ""
Me![得意先名].ControlSource = ""
Me![住所1].ControlSource = ""
カナ名.SetFocus
Exit Sub
End If
If mojisu >= Int(2) Then
[カナ名] = Left([カナ名], mojisu - Int(1))
Call 検索処理
Exit Sub
End If
得意先コードに入力されているカナを1文字削除する処理です。
------------------------------------------------------------------
5.btn全消去について
カナ名(テキストボックス)項目をすべて消去するボタンの処理です
btn全消去_Click()を作成します。
カナ名 = ""
Set Me.Recordset = Nothing
Me![営業所コード].ControlSource = ""
Me![得意先コード].ControlSource = ""
Me![得意先名].ControlSource = ""
Me![住所1].ControlSource = ""
カナ名.SetFocus
このボタンは得意先コードに入力された文字をすべてクリアする処理です
------------------------------------------------------------------
6.btn全表示について
カナ名(テキストボックス)項目に入力せず、すべてデータを表示
させるボタンの処理です。
btn全表示_Click()を作成します。
Set rs = New ADODB.Recordset
SqlStr = ""
SqlStr = "select 営業所コード,得意先コード,得意先名,住所1 _
from 得意先マスタ "
SqlStr = SqlStr & " order by 得意先マスタ.カナ名, _
得意先マスタ.営業所コード,得意先マスタ.得意先コード"
rs.Open SqlStr, cn, adOpenStatic
If rs.BOF Then
Set Me.Recordset = Nothing
Me![営業所コード].ControlSource = ""
Me![得意先コード].ControlSource = ""
Me![得意先名].ControlSource = ""
Me![住所1].ControlSource = ""
Else
Set Me.Recordset = rs
Me![営業所コード].ControlSource = rs![営業所コード].name
Me![得意先コード].ControlSource = rs![得意先コード].name
Me![得意先名].ControlSource = rs![得意先名].name
Me![住所1].ControlSource = rs![住所1].name
End If
rs.Close
Set rs = Nothing
この処理は、登録されているすべてのデータを画面に表示させます。
SQL文にwhereがないのですべてのデータが現れます。
------------------------------------------------------------------
7.btn終了について
処理を終了してここでは、得意先残高マスタメンテナンスに戻る
ボタンの処理です。
btn終了_Click()を作成します。
On Error GoTo Err_btn終了_Click
DoCmd.Close
DoCmd.OpenForm form_modoriname
Exit_btn終了_Click:
Exit Sub
Err_btn終了_Click:
MsgBox "エラーナンバー " & Err.Number & _
vbCrLf & _
Err.Description, vbCritical, "エラー"
Resume Exit_btn終了_Click
問い合わせ画面を終了することは、元の画面に戻るということです。
つまり、得意先残高マスタメンテナンスに戻るわけです。
得意先残高マスタは、今回で終了です。
次回は、得意先残高初期入力を説明します。
詳しく内容は、次回で。
===================================================================
◆
実践テクニック、Accessで作るクラサバシステム ◆
編集・構成:高橋浩
提供・発行:ティウェア
http://www.1tware.com/index.html
Access2000+MSDE2000、Access2002+MSDE2000、Access2003+MSDE2000で
作る販売管理ソフト、クライアントサーバーシステムを構築
※当メールマガジンに掲載された記事を許可なく転載することを禁じます。
===================================================================
実践テクニック、Accessで作るクラサバシステム(隔週 火曜日発行中)
SEが10年以上の開発ノウハウを惜しみなく完全公開!
|