-
退出while的條件由rs條數控制,但記錄數可能超過x陣列的上限,導致j=j+1越界,所以j=j+1應該控制:
在"j=j+1"在此之後新增 1 行:
如果 j > ubound(x) 則轉到 out
這意味著當 j 越過邊界時,它將退出 while 迴圈。
-
do while not
句子 x(j) 總是提醒下標越界。
因為資料記錄和陣列不相稱。
除非它是你想新增的東西,否則它不會,所以你把它加在前面。
j = j + 1
迴圈不在乙個地方,改變。
for i = 0 to j
x(j) 只有在放入迴圈後才能更改。
if then
exit for
elsenext
-
str1可以下標嗎? 如果你不明白它,你應該改變它,看看欄位名稱是否=str1,然後看看fields(j)。
-
將其中的 x(j) 更改為 x(j-1) 並嘗試一下。
-
引用了不存在的陣列元素。
下標可能大於或小於下標範圍,或者應用程式這一側的陣列可能沒有指定的範圍。 檢查陣列的宣告以確認其上限和下限。 如果使用的是重新作用域的陣列,則應使用 ubound 和 lbound 函式來確定陣列訪問。
如果將索引指定為變數,則應檢查變數名稱的拼寫。
宣告陣列時未指定元素數。 例如,以下 ** 將導致此錯誤:
dim myarray() as integermyarray(8) = 234 '導致錯誤 9。
Visual Basic 不會自動將沒有指定範圍的陣列設定為 0 10。 相反,必須使用 dim 或 redim 來指定陣列中的元素數。
引用不存在的集合成員。
嘗試使用每個...。next 結構,而不是指定元素下標。
使用下標的簡寫形式,結果是指定了錯誤的元素。
例如,在集合上使用 !時運算元!系統會自動分配乙個金鑰。
例如,object!這是一樣的。 在這種情況下,如果集合中的鍵名表示不正確的鍵,則會發生錯誤。
若要改進此錯誤,請在集合物件中使用正確的鍵名或索引。
詳細資訊以選擇相關專案並按 F1 鍵。
-
n 的值為 0,所以 n-1=-1,因為陣列 a() 是 0-100,即 101,所以沒有 a(-1),所以下標越界了。
求解:為 n 賦值。
option base -1
-
從圖中可以看出,n沒有被分配初始值,對吧?
將 commondialog 控制項新增到窗體中,將影象控制項的名稱更改為 dlg**,並將名稱 lead hand orthography 更改為 imgphotoprivate sub command1 click() on error goto errh >>>More