アフィリエイト広告を利用しています

広告

posted by fanblog

2020年02月17日

[Access vba] テーブルへ出力する。

テーブルを読みテーブルへ出力する。


'INテーブルの連番開始番号から連番終了番号までのデータをOUTテーブルに出力する。


Sub renban_tenkai()

Dim cn As ADODB.Connection
Dim in_rs As ADODB.Recordset 'INテーブル
Dim ot_rs As ADODB.Recordset 'OUTテーブル
Dim lcounter As Long
Dim lstart As Long
Dim lend As Long

On Error GoTo ErrProc

sSQL = "DELETE * FROM OUTテーブル;" 'OUTテーブルを削除
CurrentDb.Execute sSQL

Set cn = CurrentProject.Connection
Set in_rs = New ADODB.Recordset
Set ot_rs = New ADODB.Recordset

in_rs.Open "INテーブル", cn, adOpenKeyset, adLockReadOnly 'INテーブル 読み取り専用で開く
ot_rs.Open "OUTテーブル", cn, adOpenKeyset, adLockOptimistic

'SEQNOを振るためのKey初期化
If Not in_rs.EOF Then
s部品番号 = in_rs!部品番号
iSEQNO = 0
End If

Do Until in_rs.EOF
lstart = Val(in_rs!連番START)
lend = Val(in_rs!連番END)

For lcounter = lstart To lend

'SEQNOを振るための制御
If s部品番号 = in_rs!部品番号 And s客先製造日 = in_rs!客先製造日 Then
iSEQNO = iSEQNO + 1
Else
s部品番号 = in_rs!部品番号
s客先製造日 = in_rs!客先製造日
iSEQNO = 1
End If

ot_rs.AddNew

ot_rs!部品番号 = in_rs!部品番号
ot_rs!客先製造日 = in_rs!客先製造日
ot_rs!連番 = Format(lcounter, "000000") '6桁
ot_rs!SEQNO = iSEQNO

ot_rs.Update
Next
in_rs.MoveNext
Loop

in_rs.Close: Set in_rs = Nothing
cn.Close: Set cn = Nothing

Proc_Exit:
DoCmd.SetWarnings 1
Exit Sub
ErrProc:
MsgBox Err.number & " " & Err.description
Resume Proc_Exit
End Sub




posted by naka at 13:07 | TrackBack(0) | Access vba

この記事へのトラックバックURL
https://fanblogs.jp/tb/9639915
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
カテゴリーアーカイブ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。