2014-02-14 51 views
0
 while not rs.eof 
      if request("QTY_NOWRECEIVE"&rs("pd_id")) <> "" then 
       rsa.movefirst 
       if not rsa.eof then 
        if trim(request("stock_id"&rs("pd_id"))) = trim(rsa("stock_id")) and trim(request("ORDER_NUMBER"&rs("pd_id"))) = trim(rsa("PONumber")) then 
         '''check, same then edit record 
         (...) 
         rsa.update 
        else 
         '''check, not same then add record 
         rsa.addnew 
         (...) 
         rsa.update 
        end if 
       rsa.movenext 
       end if 
      end if 
     rs.movenext 
     wend 

現在我得到了2個sql。表單中的sql1和數據庫中的sql2。首先我通過表單1,2和3添加新記錄。因此數據庫獲得記錄1,2和3.然後我編輯成爲1a,2b和3c。但我在數據庫中的結果是1a,2,3,1a和1a。我的邏輯完全錯了嗎?while inside,stuck in first record

現在我只是想檢查我的提交是否與數據庫一樣。如果相同,則編輯,如果不相同,則添加新的。

19-02-2014 1.add rsa.movefirst。 2.如果不是rsa.eof,則改爲rsa.eof然後

+1

what ???????????? – ulluoink

+0

我完全不清楚你想要做什麼。如果您展示了一些示例數據,查詢和預期結果,我們可能會提供幫助。但是,我會注意到你不需要查詢'rsa' - 所以一旦它碰到'eof'一次(它會在循環中執行一次),任何事情都不會導致'rsa.eof'再次失效,所以內部循環將永遠不會再次運行。 –

+0

抱歉我的英文很差。像這樣:現在我在我的表單1,2,3,4,5中獲得了5個項目。並且我將2,3,4添加到數據庫。 現在形成了1,2,3,4,5。數據庫得到2,3,4。 然後我想編輯2,3,4到1,2,3,4。但結果是2,3,4,1,2,3,4。 我正在盡力解釋它。對不起,我的英語很差。 – Eson

回答

0

我並不完全遵循您的方案,但我認爲您需要第二個記錄集rsa來循環每次在rs有新記錄時,正確?

如果是這樣,你需要告訴RSA加入movefirst

while not rs.eof 
      if (...) then 
       rsa.movefirst 
       while not rsa.eof 
         if (whatever) then 
           ... 
         else 
           ... 
           rsa.update 
         end if 
         rsa.movenext 
       wend 
      end if 
      rs.movenext 
    wend 

如果不添加的MoveFirst重新來過,RSA將永遠是最後一條記錄,絕不會通過循環迭代再次。

+0

感謝您的回覆。現在我又遇到了一個問題。用這段代碼,我得到這樣的結果:在數據庫中得到記錄2,3,4。我想把2,3,4改成2a,3a,4a。結果是2a,3,4,3a,4a。我成功地編輯了第一條記錄,但沒有編輯到另一條記錄。我錯過了什麼? – Eson

+0

IF語句中的邏輯有問題。要麼。通過QueryString傳入的變量可能有問題。我們不可能在沒有看到數據的情況下分辨。 –

+0

現在我的循環只能始終卡在rsa第1條記錄。當我想改變2,3,4到2a,3a,4a。結果是2a,3,4,3a,4a。它只檢查第一條記錄,所以只能編輯第一條記錄。另一個將添加新的記錄。你需要看什麼樣的數據? – Eson