給与計算クエリの計算結果を、給与明細控えテーブルには
ADOを使って移します。
今回のサンプルファイルです。
![アイコン](http://www.xn--lhry58ekee5td.com/wp-content/plugins/download-manager/assets/file-type-icons/accdb.png)
給与計算 ADOコード
最初に給与計算クエリに、給与明細テーブルの「ID」をフィールドに
追加します。
給与計算フォームにコマンドボタンを配置します。
そのコマンドボタンのイベントタブのクリック時に次のコードを
入力します。
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
実行結果です。
これで給与計算の計算結果が別個のテーブルに移すことができました。
これで料率変更があっても、給与明細控えテーブルのデータは変更される
心配がなくなりました。
======================
新年あけましておめでとうございます!
お正月は毎年恒例で嫁のご両親と長野県茅野市で迎えます。
寒い朝です。
今年もこのブログを通じて皆様に役立つ情報をどんどん発信して
いきたいと思います。
本年もよろしくお願い申し上げます。
今年からメルマガも発行します!こちらの方もよろしくお願いします。