If Not account.EOF Or Not account.BOF And (account.Fields.Item("account_browselimit").Value) = 10 Then
為什麼再後面加入"And (account.Fields.Item("account_browselimit").Value) = 10 "會出現
錯誤類型:
ADODB.Field (0x800A0BCD)
可能是 BOF 或 EOF 的值為 True,或目前的資料錄已被刪除。所要求的操作需要目前的資料錄。
的錯誤訊息???
是因為我把or跟and一起使用導致系統分辦不出來嗎.?
請大大幫我看一下,謝謝
2007-08-24 18:19:28 · 1 個解答 · 發問者 蘋果多 3 in 電腦與網際網路 ➔ 程式設計
你把情況用真值表寫寫究知道原因了。舉個檔案已到結尾的情況,所以:
account.EOF = true;
account.BOF = false;
依照惰性運算或者最小化運算原則,由左至右,下面情況不會往右繼續運算右邊的值:
true OR (any condition)
false AND (any condition)
其他情況都會繼續往右計算。所以:
Not account.EOF OR Not account.BOF
= Not true OR Not false
= false OR true
= true
下一個運算子是 AND ,照上面的惰性運算規則,電腦不會照你的意思停下來,繼續往右運算,碰到這個值:
(account.Fields.Item("account_browselimit").Value) = 10
就發生違法存取。
要修正,檢查邊界的判斷要單獨放在最外邊。
2007-08-24 20:02:34 · answer #1 · answered by mh 7 · 0⤊ 0⤋