2009年6月13日

社員マスターをメニューに追加:ExcelとDAOで販売管理ソフトを作る Step13

社員マスターのデータを表示するシートを作成します。
メニュー画面に「社員マスター」ボタンを追加し、クリックされると社員マスターシートの有無をチェックし、なければ追加します。

■「社員マスター」ボタンを追加したメニュー画面

■ 追加された社員マスターシート
■ 標準モジュールの実行コード
'シートの存在を確認
Public Function ExSheetCheck(stname As String) As Boolean
Dim tsheet As Object
ExSheetCheck = False
'全をチェック
For Each tsheet In ActiveWorkbook.Worksheets
If LCase(tsheet.Name) = LCase(stname) Then
'見つかれば終了
ExSheetCheck = True
Exit For
End If
Next
End Function
■ クリックイベント
Private Sub CommandButton2_Click()
If ExSheetCheck("社員マスター") = False Then
'見つからなければシートを追加
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
'名前の変更
ActiveWorkbook.ActiveSheet.Name = "社員マスター"
End If
End Sub

2009年5月24日

ExcelとDAOで販売管理ソフトを作る 社員マスターをデータベースに登録 Step12

データチェックがOKならば、データベースの「M_社員マスター」に入力データを保存します。
保存はまず新規追加から行ってみます。
新規追加は
1)レコードセット.AddNew
2)フィールドにデータを代入
3)レコードセット.Updateの順になります。

■社員マスター入力ユーザーフォーム
仮データを入力しました。


■登録されたデータ
正常に登録されているのが分かります。


■実行コード
'登録ボタン
Private Sub CommandButton2_Click()
If ExDataCheck = False Then
Exit Sub
End If

'データの登録
ExDataSave

Unload UserForm2

End Sub

'データの登録
Private Sub ExDataSave()
Dim rs As Recordset

'自社情報テーブルを開き、テキストボックスに表示する
Set rs = tDbHanbai.OpenRecordset("M_社員マスター", dbOpenDynaset)
'新規追加
rs.AddNew

rs("氏名") = TextBox2.Value
rs("フリガナ") = TextBox3.Value
rs("所属") = TextBox4.Value
rs("メール") = TextBox5.Value
rs.Update
Set rs = Nothing
End Sub

2009年4月28日

ExcelとDAOで販売管理ソフトを作る 社員マスター入力フォーム Step11

登録ボタンが押された場合、まずデータが正常に入力されているかチェックします。

1)氏名は必ず入力されていることにします。 入力されていない場合、エラーメッセージを表示します。
2)各データの入力文字数が、データベースのフィールド文字数以内かチェックします。 
フィールド範囲以上の場合、エラーになるのでこのチェックは必ず必要です。

■社員マスター入力フォーム


■氏名が入力されていない場合のエラー表示フォーム


'キャンセルボタン
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub

'登録ボタン
Private Sub CommandButton2_Click()
If ExDataCheck = False Then
Exit Sub
End If
End Sub

'データのチェック
Private Function ExDataCheck() As Boolean
ExDataCheck = False
If TextBox2.Value = "" Then
MsgBox "氏名は必ず入力してください。"
Exit Function
End If

If Len(TextBox2.Value) > 30 Then
MsgBox "氏名は30文字以内で入力してください。"
Exit Function
End If
If Len(TextBox3.Value) > 30 Then
MsgBox "フリガナは30文字以内で入力してください。"
Exit Function
End If
If Len(TextBox4.Value) > 50 Then
MsgBox "所属は50文字以内で入力してください。"
Exit Function
End If
If Len(TextBox5.Value) > 50 Then
MsgBox "メールは50文字以内で入力してください。"
Exit Function
End If

ExDataCheck = True
End Function