ใช้คำสั่ง SQL ล้วนๆคงไม่ได้ ต้องใช้ VBA ด้วย โค้ดนี้ต้องปรับแก้ให้ใส่ ' ' คร่อม ถ้า data type ของ ID, Num, Fieldxx เป็น Text ด้วยนะครับ
Public Sub xxx()
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim LastID As Variant
Dim I As Integer
Set DB = CurrentDb
Set RS = DB.OpenRecordset("select * from Table1 (order by ..., ถ้ามี)")
Do Until RS.EOF
If RS!ID <> LastID Then
I = 1
DB.Execute "insert into Table2 (ID, Field1) values (" & CStr(RS!ID) & ", " & CStr(RS!Num) & ")", dbFailOnError
Else
I = I + 1
DB.Execute "update Table2 set Field" & CStr(I) & " = " & CStr(RS!Num) & " where ID = " & CStr(RS!ID), dbFailOnError
End If
LastID = RS!ID
RS.MoveNext
Loop
RS.Close: Set RS = Nothing
End Sub