Set RS3 = New ADODB.Recordset
        STR3 = "SELECT BOM1.* ,BOM2.* FROM BOM1 INNER JOIN BOM2 ON BOM1.組件編號 = '" & RS2!零件編號2 & "' WHERE BOM2.展開碼2 ='N' ORDER BY 組件編號2"
        RS3.Open STR3, CN, adOpenKeyset, adLockOptimistic
        If RS3.RecordCount = 0 Then
            Print #2, " 組件編號 '" & MATRNO(n) & "' 無BOM! "
            RS2!展開碼2 = "Y"
            RS2.Update
            'RS2.MoveNext
            GoTo START
        Else
            'n = n + 1
            RS3.MoveFirst
            'ITEMNOW = RS3!組件編號2
            'ITEMNOC = RS3!零件編號
            'MATRNO(n) = RS3!零件編號
ZHAN2:            Do Until RS3.EOF = True
                Set RS4 = New ADODB.Recordset
                STR4 = "SELECT * FROM bom2 where 組件編號2 = '" & RS3!組件編號2 & "' and 零件編號2 = '" & RS3!零件編號 & "' order by 來源碼2"
                RS4.Open STR4, CN, adOpenKeyset, adLockOptimistic
                If RS4.RecordCount = 0 Then
                    RS4.AddNew
                        RS4!組件編號2 = RS3!組件編號2
                        RS4!中文名稱2 = RS3!中文名稱2
                        RS4!零件編號2 = RS3!零件編號
                        RS4!零件中文名稱2 = RS3!零件中文名稱
                        RS4!規格2 = RS3!規格
                        RS4!來源碼2 = RS3!來源碼
                        If RS4!來源碼2 = "M" Or RS4!來源碼2 = "W" Then
                            RS4!展開碼2 = "N"
                        Else
                            RS4!展開碼2 = "Y"
                        End If
                        RS4!用量2 = RS3!用量 * RS3!用量2
                        RS4!單位2 = RS3!單位
                        RS4!用料部門2 = RS3!用料部門
                        RS4!階層2 = n
                Else
                    RS4!用量2 = RS3!用量 * RS3!用量2 + RS4!用量2
                End If
                RS4.Update
                RS3.MoveNext
            ITEMNOW = RS3!組件編號2
            ITEMNOC = RS3!零件編號
            Loop
        End If
-------------------------------------------------------
以上程序在執行rs3.movenext 時,bom2檔資料跳到下一筆,但bom1檔資料仍然在第一筆.請高手指點,謝謝!