Accessで給与計算15~ADOを使って給与明細データの追加

Pocket

給与計算クエリを設定する上で、便宜上手入力でデータを増やしていました。

こんな感じです。
261215
何も設定しない場合は、自分で社員CDと支給日等を入力する必要があります。

社員数人であれば、この方法でもいいでしょうが、人数が増えた場合は大変です。

ここでADOの出番。
詳しい説明はこちら。
ADOその6 二つのテーブルを操作する準備
ADOその7 二つのテーブルを操作するコード

ADOを使って、従業員数の分のデータを一括で増やします。

最初にこのような簡単なフォームを作ります。
2612151
テキストボックスとコマンドボタンを配置します。
テキストボックスの書式は日付に変更して下さい。

コマンドボタンのイベントタブのクリック時に、次のコードを入力します。
Private Sub コマンド2_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

rs.MoveFirst
Do Until rs.EOF

rs1.AddNew
rs1!社員CD = rs!社員CD
rs1!支給日 = Me!テキスト0
rs1.Update

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

実行結果です。
2612152
このようにして従業員の数だけ明細を増やしていきます。

==========================
昨日は袋井クラウンメロンマラソンを走ってきました。
アップダウンが激しくタフなコースでしたが、自己記録を1分半ほど
更新し、3時間28分19秒でゴール。
最後の数キロはかなりきつかったのですが、意地でも自己ベストを出そう
と歯を食いしばって頑張りました。
その反動か、今日は人生最大の筋肉痛・・・歩くのもしんどい。

本日も最後までお読み頂きありがとうございます。