簡體   English   中英

VBA訪問:定義數組

[英]VBA Access: Defining arrays

我的問題是,我是否必須定義數組的尺寸,或者數組的大小可以動態更改嗎?

我有一個帶有是/否框的子窗體的窗體。 我有一個記錄集對象,該記錄集對象將表單數據的子集僅包含在選中框的行中。是的。

我遍歷記錄集並將值附加到字符串。

我寧願遍歷記錄集並將值放入數組中,除非我不知道用戶將選擇多少個框,所以在定義數組時我無法預測數組的長度。

我嘗試做類似的事情

dim myArray(0 to variableEqualToLengthOfRecordset) as variant

但這告訴我在語句中需要一個恆定值。

有誰知道我是否可以動態設置數組的長度?

如果我簡單地定義為

dim myArray() as variant

嘗試添加值時出現界外錯誤。

是的,您可以使用ReDim Preserve intArray()重新定義數組,但這非常昂貴,並且會降低程序速度。 我建議只將數組設置為最大大小,並在不選中任何框或什么都不做時放空格,然后僅將If Array(I)=“”然后不做任何事情。 除非您得到的陣列大於1,000,000,否則我懷疑您會遇到任何問題。

有多種方法可以執行此操作,但是總之,您可以定義數組並動態重新定義它。 要重新定義,請使用Redim varArray或簡單地覆蓋變量。 這是我不知道字符串長度時使用的小例子

Dim varArray as String

varArray = Split(String, " ") ' Or whatever type it is and its delimiter.

'Then just cycle through the array with a for loop

for Counter = LBount(varArray) to UBound(array)
    string = string + varArray(counter)

next counter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM