Option Compare Database

'Ver.4 CREATE       2013/01/22

'MAKE 2013/01/24

'UPDATE             2013/01/30  

 

 

Const HIDUKE_TSUKEKAE_CODE = 9

 

Dim HANDLE_CNT(7 + 1) As Integer

Dim EV_TBL_VALID_CNT As Integer

Dim EV_TBL(366 + 1) As String

 

Private Function get_kind_of_lecday(ByVal kbn As Integer) As String

 

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim strSQL As String

 

    get_kind_of_lecday = "NOT FOUND"

   

    Set db = CurrentDb

   

    strSQL = "SELECT dat_nm FROM T_MST_NAME WHERE category='lecday_datetype'"

    strSQL = strSQL & " AND dat_cd=" & kbn & ";"

    Set rs = db.OpenRecordset(strSQL)

    If rs.RecordCount > 0 Then get_kind_of_lecday = rs.Fields("dat_nm")

   

    rs.Close

    Set rs = Nothing

    db.Close

    Set db = Nothing

 

End Function

 

Private Sub make_calender_main(ByVal nense As Integer, ByVal mm As Integer)

 

Dim db, db2 As DAO.Database

Dim rs, rs2 As DAO.Recordset

Dim strSQL As String

Dim i, DayOfTheWeek As Integer

Dim dd, UpdItem, tmp, strcnt, key_wk As String

 

    Set db = CurrentDb

    Set db2 = CurrentDb

 

    If mm = 4 Or mm = 10 Then

   

        For i = 0 To UBound(HANDLE_CNT)

       

            HANDLE_CNT(i) = 0

           

        Next i

       

    End If

           

    strSQL = "SELECT yyyymmdd, lecday_datetype, org_yyyymmdd FROM T_LECDAY_DEF WHERE nenndo=" & yyyy.Value

    strSQL = strSQL & " AND nense=" & nense

    strSQL = strSQL & " AND (Month(yyyymmdd))=" & mm & " ORDER BY yyyymmdd;"

    Set rs = db.OpenRecordset(strSQL)

 

    Do Until rs.EOF

 

        DayOfTheWeek = Weekday(rs.Fields("yyyymmdd"))

        UpdItem = "mon" & CStr(nense)

        If DayOfTheWeek = 3 Then UpdItem = "tue" & CStr(nense)

        If DayOfTheWeek = 4 Then UpdItem = "wed" & CStr(nense)

        If DayOfTheWeek = 5 Then UpdItem = "thu" & CStr(nense)

        If DayOfTheWeek = 6 Then UpdItem = "fri" & CStr(nense)

        If DayOfTheWeek = 7 Then UpdItem = "sat" & CStr(nense)

 

        'CODE10未満を授業とみなす(非常に重要なファクタ)

        Select Case rs.Fields("lecday_datetype")

            Case TEST_DATE_CODE

                key_wk = "前期テスト"

                If mm = 1 Or mm = 2 Then key_wk = "後期テスト"         '2月食い込み年を想定

            Case FIRST_COMING_DATE_CODE, PRE_ENTRANCE_CEREMONY_DATE_CODE, ENTRANCE_CEREMONY_DATE_CODE, GUIDANCE_DATE_CODE

                key_wk = "message1"

                EV_TBL_VALID_CNT = EV_TBL_VALID_CNT + 1

                EV_TBL(EV_TBL_VALID_CNT) = get_kind_of_lecday(rs.Fields("lecday_datetype")) _

                        & ":" & CStr(Month(rs.Fields("yyyymmdd"))) & "" & _

                                CStr(Day(rs.Fields("yyyymmdd"))) & _

                                        "(" & WeekdayName(Weekday(rs.Fields("yyyymmdd")), True) & ")  "

            Case Else       '通常授業

                key_wk = CStr(mm)

        End Select

 

        strSQL = "SELECT " & UpdItem & " FROM T_LECDAY_DEF_PRT_TMP "

        strSQL = strSQL & "WHERE title_colmn='" & key_wk & "';"

        Set rs2 = db.OpenRecordset(strSQL)

       

        If rs.Fields("lecday_datetype") <> HIDUKE_TSUKEKAE_CODE Then

            tmp = CStr(Day(rs.Fields("yyyymmdd")))

            If Len(tmp) = 1 Then tmp = " " & tmp

        Else

            tmp = "" & WeekdayName(Weekday(rs.Fields("org_yyyymmdd")), True) & "" & Day(rs.Fields("org_yyyymmdd"))

        End If

       

        Select Case rs.Fields("lecday_datetype")

            Case FIRST_COMING_DATE_CODE, PRE_ENTRANCE_CEREMONY_DATE_CODE, ENTRANCE_CEREMONY_DATE_CODE, GUIDANCE_DATE_CODE

                HANDLE_CNT(DayOfTheWeek) = HANDLE_CNT(DayOfTheWeek)

            Case Else

                HANDLE_CNT(DayOfTheWeek) = HANDLE_CNT(DayOfTheWeek) + 1

        End Select

       

        strcnt = CStr(HANDLE_CNT(DayOfTheWeek))

        If Len(strcnt) = 1 Then strcnt = " " & strcnt

       

        If chk_isnull(rs2.Fields(UpdItem)) = True Then

            dd = strcnt & " - " & tmp

        Else

            dd = rs2.Fields(UpdItem) & vbCrLf & strcnt & " - " & tmp

        End If

               

        strSQL = "UPDATE T_LECDAY_DEF_PRT_TMP SET "

        strSQL = strSQL & UpdItem & "='" & dd & "' "

        strSQL = strSQL & "WHERE title_colmn='" & key_wk & "';"

                   

        db2.Execute strSQL

           

        rs.MoveNext

           

    Loop

   

    rs.Close

    Set rs = Nothing

    db2.Close

    Set db2 = Nothing

    db.Close

    Set db = Nothing

 

End Sub

 

Private Sub make_calender()

 

Dim i, j As Integer

Dim tmp As String

 

    EV_TBL_VALID_CNT = 0

   

    For i = 0 To UBound(EV_TBL)

        EV_TBL(i) = ""

    Next i

 

    For i = 1 To 2

        For j = 4 To 12

            Call make_calender_main(i, j)

        Next j

        For j = 1 To 3

            Call make_calender_main(i, j)

        Next j

    Next i

   

    tmp = ""

   

    For i = 1 To EV_TBL_VALID_CNT

        tmp = tmp & EV_TBL(i)

    Next i

 

    hidden_data.Value = tmp

 

End Sub

 

Private Sub print_tmp_file_init()

 

Dim db As DAO.Database

Dim strSQL As String

Dim i, mon As Integer

Dim tmp As String

 

    Set db = CurrentDb

    strSQL = "DELETE * FROM T_LECDAY_DEF_PRT_TMP"

    db.Execute strSQL

   

    For i = 1 To 12 + 2 + 2

   

        tmp = "前期テスト"

        If i = 12 Then tmp = "後期テスト"

        If i >= 1 And i <= 6 Then tmp = CStr(i + 3)

        If i >= 8 And i <= 10 Then tmp = CStr(i + 2)

        If i = 11 Then tmp = CStr(1)

        If i >= 13 And i <= 14 Then tmp = CStr(i - 11)

        If i = 15 Then tmp = "message1"

        If i = 16 Then tmp = "message2"

   

        strSQL = "INSERT INTO T_LECDAY_DEF_PRT_TMP(sort_seq, title_colmn) "

        strSQL = strSQL & "VALUES(" & i & ", '" & tmp & "');"

        db.Execute strSQL

       

    Next i

 

    db.Close

    Set db = Nothing

 

End Sub

 

Private Function is_holiday(ByRef yyyymmdd As Date) As Boolean

 

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim strSQL As String

 

    is_holiday = False

   

    Set db = CurrentDb

   

    strSQL = "SELECT * FROM T_HOLIDAY_DEF WHERE yyyymmdd=#" & yyyymmdd & "#;"

    Set rs = db.OpenRecordset(strSQL)

    If rs.RecordCount > 0 Then is_holiday = True

   

    rs.Close

    Set rs = Nothing

    db.Close

    Set db = Nothing

 

End Function

 

Private Sub chk_the_day_of_the_week()

 

Dim tmp As Date

Dim error_field, error_type As Integer

Dim msg As String

 

On Error GoTo EXCEPTION_SECTION

 

    error_type = -1

 

    error_field = 1

    tmp = DateValue(yyyy.Value & "/" & mm01.Value & "/" & dd01.Value)

    error_type = Weekday(tmp)

    If error_type = 1 Or (sat_chk.Value = False And error_type = 7) Then GoTo EXCEPTION_SECTION

    If (is_holiday(tmp) = True) Then

        error_type = -2

        GoTo EXCEPTION_SECTION

    End If

 

    error_field = 2

    tmp = DateValue(yyyy.Value & "/" & mm02.Value & "/" & dd02.Value)

    error_type = Weekday(tmp)

    If error_type = 1 Or (sat_chk.Value = False And error_type = 7) Then GoTo EXCEPTION_SECTION

    If (is_holiday(tmp) = True) Then

        error_type = -2

        GoTo EXCEPTION_SECTION

    End If

 

    error_field = 3

    tmp = DateValue(yyyy.Value & "/" & mm03.Value & "/" & dd03.Value)

    error_type = Weekday(tmp)

    If error_type = 1 Or (sat_chk.Value = False And error_type = 7) Then GoTo EXCEPTION_SECTION

    If (is_holiday(tmp) = True) Then

        error_type = -2

        GoTo EXCEPTION_SECTION

    End If

 

    error_field = 4

    tmp = DateValue(yyyy.Value & "/" & mm04.Value & "/" & dd04.Value)

    error_type = Weekday(tmp)

    If error_type = 1 Or (sat_chk.Value = False And error_type = 7) Then GoTo EXCEPTION_SECTION

    If (is_holiday(tmp) = True) Then

        error_type = -2

        GoTo EXCEPTION_SECTION

    End If

   

On Error GoTo 0

 

    Exit Sub

 

EXCEPTION_SECTION:

 

    Select Case error_type

        Case -2

            msg = "指定された日付は祝祭日です。"

        Case -1

            msg = "年月日に妥当性がありません。"

        Case 1

            msg = "指定された日付は日曜日です。"

        Case 7

            msg = "土曜日は休校設定されています。" & vbCrLf & "指定された日付は土曜日です。"

        Case Else

            msg = "年月日に妥当性がありません。"

    End Select

           

    error_type = MsgBox(msg, vbCritical, "DATE ERROR")

    If error_field = 1 Then mm01.SetFocus

    If error_field = 2 Then mm02.SetFocus

    If error_field = 3 Then mm03.SetFocus

    If error_field = 4 Then mm04.SetFocus

 

End Sub

 

Private Sub set_mode_sw_forecolor(ByRef para As Boolean)

 

    mode_sw.ForeColor = vbRed

    mode_sw.FontBold = True

    If para = False Then mode_sw.ForeColor = vbBlack

    If para = False Then mode_sw.FontBold = False

 

End Sub

 

Private Sub change_second_stage()

 

Dim tmp As Date

 

    tmp = DateValue(yyyy.Value & "/" & mm04.Value & "/" & dd04.Value)

    tmp = DateAdd("d", 1, tmp)

    mm09.Value = Format(Month(tmp), "00")

    dd09.Value = Format(Day(tmp), "00")

 

End Sub

 

Private Sub change_first_stage()

 

Dim tmp As Date

 

    tmp = DateValue(yyyy.Value & "/" & mm01.Value & "/" & dd01.Value)

    tmp = DateAdd("d", -1, tmp)

    If Weekday(tmp) = 1 Then tmp = DateAdd("d", -1, tmp)

    mm10.Value = Format(Month(tmp), "00")

    dd10.Value = Format(Day(tmp), "00")

 

End Sub

 

Private Sub put_save_parameter()

 

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim strSQL As String

Dim i As Integer

 

    Set db = CurrentDb

    strSQL = "INSERT INTO T_LECDAY_PARAMETER_SAVE(yyyy, nense, sat_chk, time_stamp, "

   

    For i = 1 To 10

        If i <> 10 Then

            strSQL = strSQL & "mm" & Format(i, "00") & ", " & "dd" & Format(i, "00") & ", "

        Else

            strSQL = strSQL & "mm" & Format(i, "00") & ", " & "dd" & Format(i, "00") & ") "

        End If

    Next i

   

    strSQL = strSQL & "VALUES(" & Val(yyyy.Value) & ", " & nense.Value

    strSQL = strSQL & ", " & sat_chk.Value & ", " & "#" & Now() & "#, "

    strSQL = strSQL & "'" & mm01.Value & "', '" & dd01.Value & "', "

    strSQL = strSQL & "'" & mm02.Value & "', '" & dd02.Value & "', "

    strSQL = strSQL & "'" & mm03.Value & "', '" & dd03.Value & "', "

    strSQL = strSQL & "'" & mm04.Value & "', '" & dd04.Value & "', "

    strSQL = strSQL & "'" & mm05.Value & "', '" & dd05.Value & "', "

    strSQL = strSQL & "'" & mm06.Value & "', '" & dd06.Value & "', "

    strSQL = strSQL & "'" & mm07.Value & "', '" & dd07.Value & "', "

    strSQL = strSQL & "'" & mm08.Value & "', '" & dd08.Value & "', "

    strSQL = strSQL & "'" & mm09.Value & "', '" & dd09.Value & "', "

    strSQL = strSQL & "'" & mm10.Value & "', '" & dd10.Value & "');"

   

    db.Execute strSQL

 

    db.Close

    Set db = Nothing

 

End Sub

 

Private Function set_mode_sw_caption(ByRef para As Boolean) As String

 

    set_mode_sw_caption = "春季休暇期間自動設定オフ"

    If para = True Then set_mode_sw_caption = "春季休暇期間自動設定オン"

 

End Function

 

Private Function boolean_message(ByRef para As Boolean) As String

 

    boolean_message = "なし"

    If para = True Then boolean_message = "あり"

 

End Function

 

Private Sub get_save_parameter(ByRef FunctionMode As String)

 

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim strSQL, wk As String

Dim i, wk_yyyy As Integer

Dim tmp As Date

 

    Set db = CurrentDb

    strSQL = "SELECT yyyy, nense, sat_chk, time_stamp, "

   

    For i = 1 To 10

        If i <> 10 Then

            strSQL = strSQL & "mm" & Format(i, "00") & ", " & "dd" & Format(i, "00") & ", "

        Else

            strSQL = strSQL & "mm" & Format(i, "00") & ", " & "dd" & Format(i, "00") & " "

        End If

    Next i

   

    If FunctionMode = "CMD" Then

        strSQL = strSQL & "FROM T_LECDAY_PARAMETER_SAVE WHERE time_stamp=#" & hist_lst.Value & "#;"

    Else

        strSQL = strSQL & "FROM T_LECDAY_PARAMETER_SAVE ORDER BY time_stamp DESC;"

    End If

 

    Set rs = db.OpenRecordset(strSQL)

   

    If FunctionMode = "AUTO" Then rs.MoveFirst                     'AUTO時は直近パラメタを獲得する

 

    yyyy.Value = rs.Fields("yyyy")

    nense.Value = rs.Fields("nense")

   

    For i = 1 To 10

        Me.Controls("mm" & Format(i, "00")).Value = rs.Fields("mm" & Format(i, "00"))

        Me.Controls("dd" & Format(i, "00")).Value = rs.Fields("dd" & Format(i, "00"))

    Next i

 

    sat_chk.Value = rs.Fields("sat_chk")

    sat_chk_mes.Value = boolean_message(sat_chk.Value)

   

    wk = "■休暇    "

   

    For i = 5 To 10                             '2.29が切れ目になっているとここでエラー発生の可能性があるが、現実的ではない

   

        wk_yyyy = rs.Fields("yyyy")

        If i >= 8 Then wk_yyyy = rs.Fields("yyyy") + 1

        tmp = DateValue(CStr(wk_yyyy) & "/" & rs.Fields("mm" & Format(i, "00")) & "/" & rs.Fields("dd" & Format(i, "00")))

       

        If i = 5 Then wk = wk & "夏休み:"

        If i = 7 Then wk = wk & "冬休み:"

        If i = 9 Then wk = wk & "春休み:"

       

        wk = wk & CStr(Month(tmp)) & "" & CStr(Day(tmp)) & "(" & WeekdayName(Weekday(tmp), True) & ")"

       

        If i = 5 Or i = 7 Or i = 9 Then

            wk = wk & " - "

        Else

            wk = wk & "    "

        End If

       

    Next i

   

    hidden_data2.Value = wk

   

    rs.Close

    Set rs = Nothing

    db.Close

    Set db = Nothing

   

End Sub

 

Private Sub matrix_title_dsp()

 

    header01.Value = "曜日"

    header02.Value = "前期回数"

    header03.Value = "後期回数"

 

    item01.Value = ""

    item02.Value = ""

    item03.Value = ""

    item04.Value = ""

    item05.Value = ""

    item06.Value = ""

   

    mae_cnt_mon.Value = 0

    mae_cnt_tue.Value = 0

    mae_cnt_wed.Value = 0

    mae_cnt_thu.Value = 0

    mae_cnt_fri.Value = 0

    mae_cnt_sat.Value = 0

   

    ato_cnt_mon.Value = 0

    ato_cnt_tue.Value = 0

    ato_cnt_wed.Value = 0

    ato_cnt_thu.Value = 0

    ato_cnt_fri.Value = 0

    ato_cnt_sat.Value = 0

 

End Sub

 

Private Sub setting_status_chk()

 

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim strSQL As String

Dim DayOfTheWeek As Integer

Dim mae_st_date, mae_en_date, ato_st_date, ato_en_date As Date

Dim cnt As Integer

 

    cnt = 0

 

    mae_st_date = DateValue(yyyy.Value & "/" & mm01.Value & "/" & dd01.Value)

    mae_en_date = DateValue(yyyy.Value & "/" & mm02.Value & "/" & dd02.Value)

    ato_st_date = DateValue(yyyy.Value & "/" & mm03.Value & "/" & dd03.Value)

    ato_en_date = DateValue(yyyy.Value & "/" & mm04.Value & "/" & dd04.Value)

   

    If mae_en_date < mae_st_date Then mae_en_date = DateAdd("yyyy", 1, mae_en_date)

    If ato_en_date < ato_st_date Then ato_en_date = DateAdd("yyyy", 1, ato_en_date)

 

    Set db = CurrentDb

    strSQL = "SELECT yyyymmdd FROM T_LECDAY_DEF WHERE nenndo=" & Val(yyyy.Value)

    strSQL = strSQL & " AND nense=" & Val(nense.Value) & ";"

    Set rs = db.OpenRecordset(strSQL)

  

    If rs.RecordCount > 0 Then mes_area2.Caption = "この年度の設定は完了していますが、再設定が出来ます。" _

    Else mes_area2.Caption = "この年度の設定は未完了です。"

   

    If rs.RecordCount > 0 Then rs.MoveFirst

   

    Do Until rs.EOF

   

        DayOfTheWeek = Weekday(rs.Fields("yyyymmdd"))

 

        If DateValue(rs.Fields("yyyymmdd")) >= DateValue(mae_st_date) _

                        And DateValue(rs.Fields("yyyymmdd")) <= DateValue(mae_en_date) Then

 

            If DayOfTheWeek = 2 Then mae_cnt_mon.Value = mae_cnt_mon.Value + 1

            If DayOfTheWeek = 3 Then mae_cnt_tue.Value = mae_cnt_tue.Value + 1

            If DayOfTheWeek = 4 Then mae_cnt_wed.Value = mae_cnt_wed.Value + 1

            If DayOfTheWeek = 5 Then mae_cnt_thu.Value = mae_cnt_thu.Value + 1

            If DayOfTheWeek = 6 Then mae_cnt_fri.Value = mae_cnt_fri.Value + 1

            If DayOfTheWeek = 7 Then mae_cnt_sat.Value = mae_cnt_sat.Value + 1

           

            cnt = cnt + 1

           

        End If

 

        If DateValue(rs.Fields("yyyymmdd")) >= DateValue(ato_st_date) _

                        And DateValue(rs.Fields("yyyymmdd")) <= DateValue(ato_en_date) Then

 

            If DayOfTheWeek = 2 Then ato_cnt_mon.Value = ato_cnt_mon.Value + 1

            If DayOfTheWeek = 3 Then ato_cnt_tue.Value = ato_cnt_tue.Value + 1

            If DayOfTheWeek = 4 Then ato_cnt_wed.Value = ato_cnt_wed.Value + 1

            If DayOfTheWeek = 5 Then ato_cnt_thu.Value = ato_cnt_thu.Value + 1

            If DayOfTheWeek = 6 Then ato_cnt_fri.Value = ato_cnt_fri.Value + 1

            If DayOfTheWeek = 7 Then ato_cnt_sat.Value = ato_cnt_sat.Value + 1

           

            cnt = cnt + 1

           

        End If

   

        rs.MoveNext

   

    Loop

 

    rs.Close

    Set rs = Nothing

    db.Close

    Set db = Nothing

   

    open_campas.Value = "全開校日数 : " & cnt

 

End Sub

 

Private Sub lecday_def_make()

 

Dim db As DAO.Database

Dim rs As DAO.Recordset

Dim strSQL As String

Dim ret, i As Integer

Dim st_date, en_date As Date

Dim do_flg As Boolean

Dim VaSumFr, VaSumTo, VaWinFr, VaWinTo, VaSprFr, VaSprTo As Date

 

    mes_area.Caption = "処理中"

    cmd_close.SetFocus

    cmd_start.Enabled = False

    cmd_ref_calen.Enabled = False

    cmd_to_holiday_def.Enabled = False

 

    Set db = CurrentDb

    strSQL = "SELECT * FROM T_LECDAY_DEF WHERE nenndo=" & Val(yyyy.Value) & " AND nense=" & Val(nense.Value) & ";"

    Set rs = db.OpenRecordset(strSQL)

  

    If rs.RecordCount > 0 Then

   

        If rs.EOF = False Then rs.MoveLast

        mes_area.Caption = "オペレータ指示待ち"

        ret = MsgBox(yyyy.Value & "年度の授業日が既に " & rs.RecordCount & " 日分設定済みです。" & vbCrLf _

                        & "新たに作成し直す時は「はい」を、処理を中止する時は「いいえ」をクリックして下さい。", vbYesNo)

        If ret = vbNo Then

            rs.Close

            Set rs = Nothing

            db.Close

            Set db = Nothing

            mes_area.Caption = "オペレータ指示により処理中止"

            cmd_start.Enabled = True

            cmd_ref_calen.Enabled = True

            cmd_to_holiday_def.Enabled = True

            cmd_start.SetFocus

           

            Exit Sub

        End If

 

        mes_area.Caption = "処理中"

        Me.Repaint

        strSQL = "DELETE * FROM T_LECDAY_DEF WHERE nenndo=" & Val(yyyy.Value) & " AND nense=" & Val(nense.Value) & ";"

        db.Execute strSQL

       

    End If

 

    VaSumFr = DateValue(yyyy.Value & "/" & mm05.Value & "/" & dd05.Value)

    VaSumTo = DateValue(yyyy.Value & "/" & mm06.Value & "/" & dd06.Value)

    VaWinFr = DateValue(yyyy.Value & "/" & mm07.Value & "/" & dd07.Value)

    VaWinTo = DateValue(yyyy.Value & "/" & mm08.Value & "/" & dd08.Value)

    VaSprFr = DateValue(yyyy.Value & "/" & mm09.Value & "/" & dd09.Value)

    VaSprTo = DateValue(yyyy.Value & "/" & mm10.Value & "/" & dd10.Value)

   

    If VaSumTo < VaSumFr Then VaSumTo = DateAdd("yyyy", 1, VaSumTo)

    If VaWinTo < VaWinFr Then VaWinTo = DateAdd("yyyy", 1, VaWinTo)

    If VaSprTo < VaSprFr Then VaSprTo = DateAdd("yyyy", 1, VaSprTo)

   

    For i = 0 To 1

   

        If i = 0 Then

            st_date = DateValue(yyyy.Value & "/" & mm01.Value & "/" & dd01.Value)

            en_date = DateValue(yyyy.Value & "/" & mm02.Value & "/" & dd02.Value)

        Else

            st_date = DateValue(yyyy.Value & "/" & mm03.Value & "/" & dd03.Value)

            en_date = DateValue(yyyy.Value & "/" & mm04.Value & "/" & dd04.Value)

        End If

       

        If en_date < st_date Then en_date = DateAdd("yyyy", 1, en_date)

 

        Do While st_date <= en_date

 

            strSQL = "SELECT * FROM T_LECDAY_DEF WHERE nenndo=" & Val(yyyy.Value) & " AND "

            strSQL = strSQL & "nense=" & Val(nense.Value) & " AND yyyymmdd=" & st_date & ";"

            Set rs = db.OpenRecordset(strSQL)

  

            If rs.RecordCount > 0 Then

   

                strSQL = "DELETE * FROM T_LECDAY_DEF WHERE nenndo=" & Val(yyyy.Value) & " AND "

                strSQL = strSQL & "nense=" & Val(nense.Value) & " AND yyyymmdd=" & st_date & ";"

           

            End If

           

            do_flg = True

            If Weekday(st_date) = 1 Then do_flg = False                                 '日曜日は無条件に休み

            If Weekday(st_date) = 7 And sat_chk.Value = False Then do_flg = False       '土曜休み設定校の場合

           

            If st_date >= VaSumFr And st_date <= VaSumTo Then do_flg = False            '夏季休暇の除外

            If st_date >= VaWinFr And st_date <= VaWinTo Then do_flg = False            '冬季休暇の除外

            If st_date >= VaSprFr And st_date <= VaSprTo Then do_flg = False            '春季休暇の除外

           

            strSQL = "SELECT * FROM T_HOLIDAY_DEF WHERE yyyymmdd=#" & st_date & "#;"    '祝祭日TBLに定義されている日の除外

            Set rs = db.OpenRecordset(strSQL)

            If rs.RecordCount > 0 Then do_flg = False

           

            If do_flg <> False Then

                strSQL = "INSERT INTO T_LECDAY_DEF(nenndo, nense, yyyymmdd, lecday_datetype, org_yyyymmdd, time_stamp) "

                strSQL = strSQL & "VALUES(" & Val(yyyy.Value) & ", " & Val(nense.Value)

                strSQL = strSQL & ", #" & st_date & "#, 0, #" & st_date & "#, #" & Now() & "#);"

 

                db.Execute strSQL

            End If

           

            st_date = DateAdd("d", 1, st_date)

 

        Loop

 

    Next i

 

    rs.Close

    Set rs = Nothing

    db.Close

    Set db = Nothing

   

    matrix_title_dsp

    setting_status_chk

    put_save_parameter

    hist_lst.Requery

 

    mes_area.Caption = "処理正常終了"

    cmd_start.Enabled = True

    cmd_ref_calen.Enabled = True

    cmd_to_holiday_def.Enabled = True

    cmd_start.SetFocus

   

    hist_lst.Value = -1

    cmd_hist_call.Enabled = False

   

End Sub

 

Private Sub cmd_close_Click()

 

    DoCmd.Close

    DoCmd.OpenForm ("F_MAIN_MENU")

 

End Sub

 

Private Sub cmd_detail_Click()

 

    DoCmd.OpenForm "F_LECDAY_DEF_DETAIL", acNormal, , , acFormEdit, acDialog

    matrix_title_dsp

    setting_status_chk

 

End Sub

 

Private Sub cmd_hist_call_Click()

 

    get_save_parameter ("CMD")

 

End Sub

 

Private Sub cmd_print_Click()

 

    print_tmp_file_init

    make_calender

    DoCmd.OpenReport "R_LECDAY_DEF", acViewPreview, , , acNormal

 

End Sub

 

Private Sub cmd_ref_calen_Click()

 

    DoCmd.OpenForm "F_CALENDER", acNormal, , , acFormEdit, acDialog

 

End Sub

 

Private Sub cmd_start_Click()

 

Dim tmp As Date

Dim error_field As Integer

 

On Error GoTo EXCEPTION_SECTION

 

    error_field = 1

    tmp = DateValue(yyyy.Value & "/" & mm01.Value & "/" & dd01.Value)

 

    error_field = 2

    tmp = DateValue(yyyy.Value & "/" & mm02.Value & "/" & dd02.Value)

 

    error_field = 3

    tmp = DateValue(yyyy.Value & "/" & mm03.Value & "/" & dd03.Value)

 

    error_field = 4

    tmp = DateValue(yyyy.Value & "/" & mm04.Value & "/" & dd04.Value)

   

On Error GoTo 0

 

    lecday_def_make

 

    Exit Sub

 

EXCEPTION_SECTION:

    tmp = MsgBox("年月日に妥当性がありません。", vbCritical, "DATE ERROR")

    If error_field = 1 Then mm01.SetFocus

    If error_field = 2 Then mm02.SetFocus

    If error_field = 3 Then mm03.SetFocus

    If error_field = 4 Then mm04.SetFocus

 

End Sub

 

Private Sub cmd_to_holiday_def_Click()

 

    DoCmd.OpenForm "F_HOLIDAY_DEF_UPD", acNormal, , , acFormEdit, acDialog

 

End Sub

 

Private Sub dd01_AfterUpdate()

 

    If mode_sw.Value = True Then change_first_stage

    chk_the_day_of_the_week

 

End Sub

 

Private Sub dd02_AfterUpdate()

 

    chk_the_day_of_the_week

 

End Sub

 

Private Sub dd03_AfterUpdate()

 

    chk_the_day_of_the_week

 

End Sub

 

Private Sub dd04_AfterUpdate()

 

    If mode_sw.Value = True Then change_second_stage

    chk_the_day_of_the_week

 

End Sub

 

Private Sub Form_Load()

 

Dim tmp As Date

 

    get_save_parameter ("AUTO")

 

    mes_area.Caption = "開校記念日、都民の日など例外的休日がある場合は祝祭日に設定して下さい。"

   

    matrix_title_dsp

    setting_status_chk

   

    cmd_hist_call.Enabled = False

   

    hist_lst.RowSource = "SELECT time_stamp, yyyy & '年度' AS yyyyy , nense & '年生' AS w_nense FROM T_LECDAY_PARAMETER_SAVE ORDER BY time_stamp DESC;"

    hist_lst.Requery

   

    mode_sw.Value = True

    Call set_mode_sw_forecolor(mode_sw.Value)

    mode_sw.Caption = set_mode_sw_caption(mode_sw.Value)

 

End Sub

 

Private Sub hist_lst_AfterUpdate()

 

    cmd_hist_call.Enabled = True

    cmd_hist_call.SetFocus

 

End Sub

 

Private Sub mm01_AfterUpdate()

 

    If mode_sw.Value = True Then change_first_stage

    chk_the_day_of_the_week

 

End Sub

 

Private Sub mm02_AfterUpdate()

 

    chk_the_day_of_the_week

 

End Sub

 

Private Sub mm03_AfterUpdate()

 

    chk_the_day_of_the_week

 

End Sub

 

Private Sub mm04_AfterUpdate()

 

    If mode_sw.Value = True Then change_second_stage

    chk_the_day_of_the_week

 

End Sub

 

Private Sub mode_sw_Click()

 

    Call set_mode_sw_forecolor(mode_sw.Value)

    mode_sw.Caption = set_mode_sw_caption(mode_sw.Value)

 

End Sub

 

Private Sub nense_AfterUpdate()

   

    matrix_title_dsp

    setting_status_chk

 

End Sub

 

Private Sub sat_chk_Click()

 

    sat_chk_mes.Value = boolean_message(sat_chk.Value)

 

End Sub

 

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル