Option Compare Database
Option Explicit

Sub Case3(intCase As Integer)
'1:出金,2:入金,3:選択
Select Case intCase
Case 1
入金額.Visible = False
入金ラベル.Visible = False
入金額 = 0
出金額.Visible = True
出金ラベル.Visible = True
Case 2
入金額.Visible = True
入金ラベル.Visible = True
出金額.Visible = False
出金ラベル.Visible = False
出金額 = 0
Case Else
If MsgBox("手元からの出金になりますか?", vbYesNo) = vbNo Then
入金額.Visible = True
入金ラベル.Visible = True
出金額.Visible = False
出金ラベル.Visible = False
出金額 = 0
Else
入金額.Visible = False
入金ラベル.Visible = False
入金額 = 0
出金額.Visible = True
出金ラベル.Visible = True
End If
End Select
End Sub

Private Sub 科目番号_BeforeUpdate(Cancel As Integer)
If 科目番号 = 390 Then Case3 (1)
If 科目番号 = 470 Then Case3 (3)
If 科目番号 = 490 Then Case3 (2)
If 科目番号 > 490 And 科目番号 < 1100 Then Case3 (1)
If 科目番号 >= 1100 And 科目番号 < 1200 Then Case3 (3)
If 科目番号 = 6111 Then Case3 (2)
If 科目番号 = 6611 Then Case3 (1)
If 科目番号 = 9999 Then Case3 (2)
科目名.Visible = True
End Sub

Private Sub 終了_Click()
If MsgBox("編集中のデータは保存せず、終了します。", vbYesNo + vbDefaultButton2) = vbYes Then DoCmd.Close
End Sub

Private Sub 追加_Click()
Dim lng入金額 As Long
Dim lng出金額 As Long

'On Error GoTo EROOR_SUB
If IsNull(日付) Or Year(日付) <> WorkYear Then MsgBox "年が編集する帳簿と異なります。": 日付.SetFocus: Exit Sub
If Nz(科目番号) = 0 Or Not IsNumeric(科目番号) Then MsgBox "科目番号が選択されていません。": 科目番号.SetFocus: Exit Sub
If Nz(入金額) = 0 And 入金額.Visible = True Then MsgBox "入金額の記入がありません。": 入金額.SetFocus: Exit Sub
If Nz(出金額) = 0 And 出金額.Visible = True Then MsgBox "出金額の記入がありません。": 出金額.SetFocus: Exit Sub

If 入金額.Visible = True Then
lng入金額 = 入金額
lng出金額 = 0
Else
lng入金額 = 0
lng出金額 = 出金額
End If

InputRecord 日付, 科目番号, Nz(摘要1), Nz(摘要2), lng入金額, lng出金額

Forms!START帳簿!帳簿リスト.Requery
Me!摘要1.Requery
Me!摘要2.Requery

日付 = Null
科目番号 = 0
摘要1 = Null
摘要2 = Null
入金額 = Null
出金額 = Null
入金額.Visible = False
入金ラベル.Visible = False
出金額.Visible = False
出金ラベル.Visible = False

END_SUB:
MsgBox "データは追加されました": 日付.SetFocus
Exit Sub

EROOR_SUB:
MsgBox "記入に不備があります。もう一度やり直して下さい。" & _
vbCrLf & "データは記録されませんでした。"
日付.SetFocus
Exit Sub

End Sub

Private Sub 変更_Click()
Dim lng入金額 As Long
Dim lng出金額 As Long

If IsNull(日付) Or Year(日付) <> WorkYear Then MsgBox "年が編集する帳簿と異なります。": 日付.SetFocus: Exit Sub
If Nz(科目番号) = 0 Or Not IsNumeric(科目番号) Then MsgBox "科目番号が選択されていません。": 科目番号.SetFocus: Exit Sub
If Nz(入金額) = 0 And 入金額.Visible = True Then MsgBox "入金額の記入がありません。": 入金額.SetFocus: Exit Sub
If Nz(出金額) = 0 And 出金額.Visible = True Then MsgBox "出金額の記入がありません。": 出金額.SetFocus: Exit Sub

If 入金額.Visible = True Then
lng入金額 = 入金額
lng出金額 = 0
Else
lng入金額 = 0
lng出金額 = 出金額
End If

ChangeRecord 日付, 科目番号, Nz(摘要1), Nz(摘要2), lng入金額, lng出金額

Forms!START帳簿!帳簿リスト.Requery
Me!摘要1.Requery
Me!摘要2.Requery

End Sub