こんにちは。
クエリーで何とかしようと思ったのですが、うまく出来ないのでモジュール化しました。
これで何とかなると思います。
----------------------------------------------------------------------
テーブル構成
元テーブル
テーブル名:製品工程テーブル
項目名
製品名 :テキスト型
工程名 :テキスト型
処理日付:日付/時刻型
判定 :テキスト型
集約テーブル
テーブル名:製品工程判テーブル
項目名
製品名 :テキスト型
工程名 :テキスト型
処理日付:日付/時刻型
前回判定:テキスト型
今回判定:テキスト型
----------------------------------------------------------------------
モジュール
----------------------------------------------------------------------
Public Function Make_Shukei()
'
' 変数定義
Dim DBN As Database
Dim SNAP As Recordset
Dim DYNA As Recordset
Dim SQLSTR As String
Dim WK_SEIHIN As String
Dim WK_CNT As Integer
'
' データベース定義
Set DBN = DBEngine.Workspaces(0).Databases(0)
'
' 格納先レコード削除
DoCmd.SetWarnings False
DoCmd.Echo False
'
DoCmd.RunSQL "DELETE FROM 製品工程判定テーブル"
'
' 初期値設定
WK_SEIHIN = "**********"
WK_CNT = 0
'
' 抽出用SQL作成
SQLSTR = ""
SQLSTR = SQLSTR & "SELECT 製品名,工程名,処理日付,判定 FROM 製品工程テーブル "
SQLSTR = SQLSTR & " ORDER BY 製品名, 処理日付;"
'
' レコードセット定義
Set SNAP = DBN.OpenRecordset(SQLSTR, DB_OPEN_SNAPSHOT)
Set DYNA = DBN.OpenRecordset("製品工程判定テーブル", DB_OPEN_DYNASET)
'
If SNAP.BOF = False Then
SNAP.MoveFirst
Do Until SNAP.EOF
'
If WK_SEIHIN <> SNAP("製品名") Then
If WK_SEIHIN <> "**********" Then
If WK_CNT = 1 Then
DYNA("今回判定") = DYNA("前回判定")
DYNA("前回判定") = "NG"
End If
DYNA.Update
End If
'
DYNA.AddNew
DYNA("製品名") = SNAP("製品名")
DYNA("工程名") = SNAP("工程名")
DYNA("処理日付") = SNAP("処理日付")
DYNA("前回判定") = SNAP("判定")
WK_SEIHIN = SNAP("製品名")
WK_CNT = 1
Else
DYNA("今回判定") = SNAP("判定")
WK_CNT = 2
End If
'
SNAP.MoveNext
Loop
End If
'
If WK_SEIHIN <> "**********" Then
If WK_CNT = 1 Then
DYNA("今回判定") = DYNA("前回判定")
DYNA("前回判定") = "NG"
End If
DYNA.Update
End If
'
SNAP.Close
DYNA.Close
'
DoCmd.SetWarnings True
DoCmd.Echo True
'
End Function
----------------------------------------------------------------------
[ツール]-[参照設定]で以下のライブラリのみにチェックを入れて下さい。
■Visual Basic for Application
■Microsoft Access 9.0 Object Library
■OLE Automation
■Microsoft DAO 3.6 Object Library
■Microsoft Visual Basic for Application Extensibulity 5.3
----------------------------------------------------------------------
何か不明な点があれば補足してください。
ではでは・・・
お礼
paz777様ありがとうございました。 モジュールまで作成していただきましてありがとうございました。 VBAは全く使った事がなく分からないながらも何とか動作させる事が出来ました。 本当にありがとうございました。 なんとお礼を言って良いものか本当にありがとうございました。