Option Compare Database '文字列の比較にデータベースで決められた形式を使用します。 Option Explicit '96/3/25 修正 Function 給与データ作成AL(frm As Form) Dim 件数 As Long Dim MSG As String Dim st As Variant 'If (DCount("*", "D_天引AL", "[月度]=#" & frm!月度 & "# and [flg]='1'") = 0) Then ' If frm!区分 = "1" Then ' MSG = "給与データ" ' Else ' MSG = "賞与データ" ' End If ' MSG = MSG & "が抽出されていません" & vbCrLf & _ ' "データ抽出処理を行ってください" ' MsgBox MSG, vbInformation + vbOKOnly, "確認してください" 'Else MSG = Format(frm!月度, "YYYY") & "年" & Format(frm!月度, "MM") & "月度分の" If frm!区分 = "1" Then MSG = MSG & "給与データ" Else MSG = MSG & "賞与データ" End If MSG = MSG & "を作成します。" st = MsgBox(MSG, vbInformation + vbYesNo, "確認してください") If st = vbNo Then st = MsgBox("処理を中止します", 64, "中止します") Else DoCmd.OpenForm "処理中" Forms![処理中].Repaint If frm!区分 = "1" Then 件数 = 給与作成AL("Y:\KOALA専用\A〜Z行\KOALA会計システム\人事データ_Albion\koala51.xls") End If 'st = 給与情報更新(frm) DoCmd.Close A_FORM, "処理中" If frm!区分 = "1" Then MSG = "転送データ(Y:\KOALA専用\A〜Z行\KOALA会計システム\人事データ_Albion\KOALA51.xls)が作成されました。" & vbCrLf & _ "データ件数:" & 件数 st = MsgBox(MSG, vbInformation + vbOKOnly, "処理が終了しました") Else 'st = MsgBox("転送データ(KOALA52.DAT)が作成されました。", 64, "処理が終了しました") End If End If 'End If End Function Function 給与データ作成(frm As Form) Dim 件数 As Long Dim MSG As String Dim WSSS As String Dim i As Integer Dim st As Variant Dim NM As String i = Nz(DCount("*", "D_天引", "([月度]=#" & frm!月度 & "# and [flg]='" & frm!区分 & "')"), 0) If i = 0 Then If frm!区分 = "1" Then MSG = "給与データ" Else MSG = "賞与データ" End If MSG = MSG & "が抽出されていません" & vbCrLf & _ "データ抽出処理を行ってください" MsgBox MSG, vbInformation + vbOKOnly, "確認してください" Else MSG = Format(frm!月度, "YYYY") & "年" & Format(frm!月度, "MM") & "月度分の" If frm!区分 = "1" Then MSG = MSG & "給与データ" Else MSG = MSG & "賞与データ" End If MSG = MSG & "を作成します。" st = MsgBox(MSG, vbInformation + vbYesNo, "確認してください") If st = vbNo Then st = MsgBox("処理を中止します", 64, "中止します") Else 'DoCmd.OpenForm "処理中" 'Forms![処理中].Repaint If frm!区分 = "1" Then NM = "koala51.dat" 件数 = 給与作成("Y:\KOALA専用\A〜Z行\KOALA会計システム\人事データ_KOSE\koala51.dat") Else NM = "koala52.dat" 件数 = 賞与作成("Y:\KOALA専用\A〜Z行\KOALA会計システム\人事データ_KOSE\KOALA52.DAT") End If st = 給与情報更新(frm) 'DoCmd.Close A_FORM, "処理中" MSG = "転送データ(" & NM & ")が作成されました。" & vbCrLf & _ "データ件数:" & 件数 st = MsgBox(MSG, vbInformation + vbOKOnly, "処理が終了しました") End If End If End Function Function 給与データ処理(op, Kbn As String) Dim frm As Form Dim st As Variant Set frm = Screen.ActiveForm frm!区分 = Kbn If Kbn = "1" Then frm!カードNO = "L1" Else frm!カードNO = " " End If Select Case op Case 1: ' データ抽出 st = 給与データ抽出(frm!月度, frm!区分) Case 2: ' データ更新 DoCmd.OpenForm "D_給与" Case 3: ' データ作成 st = 給与データ作成(frm) Case 9 st = 給与データ確認(frm!月度, frm!区分) End Select End Function Function 給与データ処理AL(op, Kbn As String) Dim frm As Form Dim st As Variant Set frm = Screen.ActiveForm frm!区分 = Kbn Select Case op Case 1: ' データ抽出 st = 給与データ抽出AL(frm!月度, frm!区分) Case 2: ' データ更新 DoCmd.OpenForm "D_給与" Case 3: ' データ作成 st = 給与データ作成AL(frm) Case 9 'st = 給与データ確認AL(frm!月度, frm!区分) End Select End Function Function 給与データ抽出AL(ymd, Kbn) Dim DB As Database Dim frm As Form Dim MSG As String Dim st As Variant Dim oymd As Date 'If (Nz(DCount("*", "D_天引AL", "[月度]=#" & ymd & "# and [flg]='1'"), 0) > 0) Then ' If Kbn = "1" Then ' MSG = "給与データ" ' Else ' MSG = "賞与データ" ' End If ' MSG = MSG & "は既に抽出されています " & vbCrLf & _ ' "データを再抽出しますか?" ' st = MsgBox(MSG, 36, "確認してください") ' If st = 6 Then ' st = 給与賞与抽出AL(Kbn) ' DoCmd.OpenForm "D_給与" ' End If 'Else If Kbn = "1" Then oymd = DateAdd("M", -1, ymd) 'If (Nz(DCount("*", "D_天引情報AL", "[区分]='1' and [月度]=#" & oymd & "#"), 0) = 0) Then ' MSG = Format(oymd, "YYYY") & "年" & Format(oymd, "MM") & "月分の給与データが作成されていません" & vbCrLf & vbCrLf & _ ' "注意" & vbCrLf & _ ' " 転送データ作成処理を行ってください" & vbCrLf & _ ' " これを実行しないとデータに不整合が生じる可能性があります" ' st = MsgBox(MSG, 48, "確認してください") 'Else MSG = Format(ymd, "YYYY") & "年" & Format(ymd, "MM") & "月分の" & _ "給与データを抽出します" st = MsgBox(MSG, 68, "確認してください") If st = 6 Then st = 給与賞与抽出AL(Kbn) DoCmd.OpenForm "D_給与" End If 'End If Else End If 'End If End Function Function 給与データ抽出(ymd, Kbn) Dim DB As Database Dim MSG As String Dim T_D_ローン As New ADODB.Recordset Dim frm As Form Dim i As Integer Dim st As Variant Dim oymd As Date If (Nz(DCount("*", "D_天引", "[月度]=#" & ymd & "# and [flg]='1'"), 0) > 0) Then If Kbn = "1" Then MSG = "給与データ" Else MSG = "賞与データ" End If MSG = MSG & "は既に抽出されています " & vbCrLf & _ "データを再抽出しますか?" st = MsgBox(MSG, 36, "確認してください") If st = 6 Then st = 給与賞与抽出(Kbn) DoCmd.OpenForm "D_給与" End If Else If Kbn = "1" Then oymd = DateAdd("M", -1, ymd) If (Nz(DCount("*", "D_天引情報", "[区分]='1' and [月度]=#" & oymd & "#"), 0) = 0) Then MSG = Format(oymd, "YYYY") & "年" & Format(oymd, "MM") & "月分の給与データが作成されていません" & Chr(13) & Chr(10) MSG = MSG & Chr(13) & Chr(10) MSG = MSG & "注意" & Chr(13) & Chr(10) MSG = MSG & " 転送データ作成処理を行ってください" & Chr(13) & Chr(10) MSG = MSG & " これを実行しないとデータに不整合が生じる可能性があります" st = MsgBox(MSG, 48, "確認してください") Else MSG = Format(ymd, "YYYY") & "年" & Format(ymd, "MM") & "月分の" MSG = MSG & "給与データを抽出します" st = MsgBox(MSG, 68, "確認してください") If st = 6 Then st = 給与賞与抽出(Kbn) DoCmd.OpenForm "D_給与" End If End If Else If Format(ymd, "MM") = "12" Then oymd = DateAdd("M", -1, ymd) Else oymd = ymd End If If (Nz(DCount("*", "D_天引情報", "[区分]='1' and [月度]=#" & oymd & "#"), 0) = 0) Then MSG = Format(oymd, "YYYY") & "年" & Format(oymd, "MM") & "月分の給与データが作成されていません" & Chr(13) & Chr(10) MSG = MSG & Chr(13) & Chr(10) MSG = MSG & "注意" & Chr(13) & Chr(10) MSG = MSG & " 転送データ作成処理を行ってください" & Chr(13) & Chr(10) MSG = MSG & " これを実行しないとデータに不整合が生じる可能性があります" st = MsgBox(MSG, 48, "確認してください") Else MSG = Format(ymd, "YYYY") & "年" & Format(ymd, "MM") & "月分の" MSG = MSG & "賞与データを抽出します" st = MsgBox(MSG, 68, "確認してください") If st = 6 Then st = 給与賞与抽出(Kbn) DoCmd.OpenForm "D_給与" End If End If End If End If End Function Function 給与賞与抽出AL(Kbn) DoCmd.SetWarnings False DoCmd.OpenQuery "QD_給与削除AL" DoCmd.OpenQuery "QD_育児支援AL2" DoCmd.OpenQuery "QD_全労済AL" DoCmd.OpenQuery "QD_慶弔AL" DoCmd.OpenQuery "QD_慶弔_追加分AL" 'DoCmd.SetWarnings True End Function Function 給与賞与抽出(Kbn) DoCmd.SetWarnings False DoCmd.OpenQuery "QD_給与削除" If Kbn = "1" Then DoCmd.OpenQuery "QD_給与追加削除" End If DoCmd.OpenQuery "QD_特販申込給与" DoCmd.OpenQuery "QD_ローン天引削除" ' DoCmd クエリーを開く "QD_ローン天引給与更新" If Kbn = "1" Then DoCmd.OpenQuery "QD_ローン天引給与" Else DoCmd.OpenQuery "QD_ローン天引賞与" End If ' DoCmd クエリーを開く "QD_ローン天引残高更新" DoCmd.OpenQuery "QD_ローン天引作成" DoCmd.OpenQuery "QD_育児支援2" DoCmd.OpenQuery "QD_介護見舞" DoCmd.OpenQuery "QD_全労済" DoCmd.OpenQuery "QD_慶弔" DoCmd.OpenQuery "QD_慶弔_追加分" DoCmd.OpenQuery "QD_給与追加" 'DoCmd.SetWarnings True End Function Function 給与情報更新(frm As Form) Dim TBL As New ADODB.Recordset Dim WSSS As String DoCmd.SetWarnings False If frm.区分 = "1" Then DoCmd.OpenQuery "QD_ローン天引給与更新" Else DoCmd.OpenQuery "QD_ローン天引賞与更新" End If DoCmd.OpenQuery "QD_ローン天引残高更新" DoCmd.OpenQuery "QD_ローン完済更新" '3/21 追加 WSSS = "select * from D_天引情報 where ([区分]='" & frm!区分 & " ' and [月度]=#" & frm!月度 & "#);" TBL.Open WSSS, CurrentProject.Connection, adOpenDynamic, adLockOptimistic If TBL.EOF Then TBL.AddNew TBL!区分 = frm!区分 TBL!月度 = frm!月度 TBL!作成日 = Date TBL.Update TBL.Close 'DoCmd.SetWarnings True End Function Function 給与データ確認(ymd, Kbn) Dim frm As Form Dim MSG As String Dim st As Variant MSG = "【確認用】" & vbCrLf & vbCrLf & Format(ymd, "YYYY") & "年" & Format(ymd, "MM") & "月分の給与データを抽出します" st = MsgBox(MSG, vbInformation + vbYesNo, "確認してください") If st = vbYes Then st = 給与賞与確認(Kbn) DoCmd.OpenForm "D_給与" End If End Function Function 給与賞与確認(Kbn) DoCmd.SetWarnings False DoCmd.OpenQuery "QD_給与削除C" DoCmd.OpenQuery "QD_特販申込給与C" DoCmd.OpenQuery "QD_ローン天引削除C" DoCmd.OpenQuery "QD_ローン天引給与C" DoCmd.OpenQuery "QD_ローン天引作成C" DoCmd.OpenQuery "QD_育児支援C2" DoCmd.OpenQuery "QD_慶弔C" DoCmd.OpenQuery "QD_給与追加C" 'DoCmd.SetWarnings True End Function