Accessで給与計算21~給与計算結果を保存するADOのコード

Pocket

給与計算クエリの計算結果を、給与明細控えテーブルには
ADOを使って移します。

今回のサンプルファイルです。

最初に給与計算クエリに、給与明細テーブルの「ID」をフィールドに
追加します。

2701011
給与計算フォームにコマンドボタンを配置します。
2701013
そのコマンドボタンのイベントタブのクリック時に次のコードを
入力します。
Private Sub コマンド29_Click()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cnn1 As ADODB.Connection
Dim rs1 As ADODB.Recordset

Set cnn = CurrentProject.Connection
Set rs = New ADODB.Recordset
Set cnn1 = CurrentProject.Connection
Set rs1 = New ADODB.Recordset

rs.Open “給与明細”, cnn, adOpenKeyset, adLockOptimistic
rs1.Open “給与明細控え”, cnn1, adOpenKeyset, adLockOptimistic

Do Until rs.EOF
If rs!支給日 = Forms!フォーム1!テキスト0 Then
rs1.AddNew
rs1!社員CD = rs!社員CD
rs1!支給日 = Forms!フォーム1!テキスト0
rs1!基本給 = DLookup(“基本給”, “給与計算”, “ID=” & rs!ID & “”)
rs1!通勤手当 = DLookup(“通勤手当”, “給与計算”, “ID=” & rs!ID & “”)
rs1!その他手当1課税 = DLookup(“その他手当1課税”, “給与計算”, “ID=” & rs!ID & “”)
rs1!その他手当2不課税 = DLookup(“その他手当2不課税”, “給与計算”, “ID=” & rs!ID & “”)
rs1!健康保険料 = DLookup(“健康保険料”, “給与計算”, “ID=” & rs!ID & “”)
rs1!厚生年金保険料 = DLookup(“年金保険料”, “給与計算”, “ID=” & rs!ID & “”)
rs1!雇用保険料 = DLookup(“雇用保険料”, “給与計算”, “ID=” & rs!ID & “”)
rs1!源泉所得税 = DLookup(“源泉”, “給与計算”, “ID=” & rs!ID & “”)
rs1!住民税 = DLookup(“住民税”, “給与計算”, “ID=” & rs!ID & “”)
rs1.Update
End If
rs.MoveNext
Loop

rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing

rs1.Close
Set rs1 = Nothing
cnn1.Close
Set cnn1 = Nothing

End Sub

実行結果です。
2701012
これで給与計算の計算結果が別個のテーブルに移すことができました。
これで料率変更があっても、給与明細控えテーブルのデータは変更される
心配がなくなりました。

======================
新年あけましておめでとうございます!
お正月は毎年恒例で嫁のご両親と長野県茅野市で迎えます。
寒い朝です。

今年もこのブログを通じて皆様に役立つ情報をどんどん発信して
いきたいと思います。

本年もよろしくお願い申し上げます。

今年からメルマガも発行します!こちらの方もよろしくお願いします。