我有這樣的代碼:如何連接VB中的兩個多維數組?
rs1 = getResults(sSQL1)
rs2 = getResults(sSQL2)
RS1和RS2和二維數組。第一個索引表示列數(靜態),第二個索引表示行數(動態)。
我需要加入兩個數組並將它們存儲在rs3中。我不知道什麼類型的rs1和rs2是。
我有這樣的代碼:如何連接VB中的兩個多維數組?
rs1 = getResults(sSQL1)
rs2 = getResults(sSQL2)
RS1和RS2和二維數組。第一個索引表示列數(靜態),第二個索引表示行數(動態)。
我需要加入兩個數組並將它們存儲在rs3中。我不知道什麼類型的rs1和rs2是。
我已經想通了。事實證明,我一直在以正確的方式進行,我剛剛得到了一個。你也不需要第三個數組。
aRS_RU = rowsQuery(sSQL & ", 'RU'")
aRS_KR = rowsQuery(sSQL & ", 'KR'")
uboundRU1 = UBound(aRS_RU, 1)
uboundRU2 = UBound(aRS_RU, 2)
uboundKR2 = Ubound(aRS_KR, 2)
' Redim original array
ReDim Preserve aRS_RU(uboundRU1, uboundRU2 + uboundKR2 + 1)
uboundRU2 = UBound(aRS_RU, 2)
' Add the values from the second array
For m = LBound(aRS_KR, 1) To UBound(aRS_KR, 1) 'Loop for 1st dimension
For n = LBound(aRS_KR, 2) To UBound(aRS_KR, 2) 'Loop for 2nd dimension
aRS_RU(m, uboundRU2 + n) = aRS_KR(m,n)
Next
Next
你確定這些列會匹配嗎?因爲如果情況並非如此,我不知道你會如何以任何語言以通用的方式進行操作。如果是的話,那麼你也許可以做到這一點非常簡單像這樣:
rs1 = getResults(sSQL1 & " UNION " sSQL2)
我知道這篇文章是舊的,但我修改了代碼來修復它在執行過程中遇到的一些錯誤。以下代碼示例適用於我:
Sub ConcatRecordSets(ByRef avFirstRS As Variant, ByRef avSecondRS As Variant)
Dim lIndex1 As Long, lIndex2 As Long
Dim lFirstRSSize As Long, lSecondRSSize As Long
' Redim original array
lFirstRSSize = UBound(avFirstRS, 2) - LBound(avFirstRS, 2) + 1
lSecondRSSize = UBound(avSecondRS, 2) - LBound(avSecondRS, 2) + 1
ReDim Preserve avFirstRS(LBound(avFirstRS, 1) To UBound(avFirstRS, 1), LBound(avFirstRS, 2) To UBound(avFirstRS, 2) + lSecondRSSize)
' Add the values from the second array
For lIndex1 = LBound(avSecondRS, 1) To UBound(avSecondRS, 1) ' Loop for 1st dimension
For lIndex2 = LBound(avSecondRS, 2) To UBound(avSecondRS, 2) ' Loop for 2nd dimension
avFirstRS(lIndex1, lFirstRSSize + lIndex2) = avSecondRS(lIndex1, lIndex2)
Next lIndex2
Next lIndex1
End Sub
爲什麼你不使用Array.Resize + Array.Copy? – 2012-05-30 02:49:06
是的,我確定。他們都執行相同的存儲過程(我知道,但我沒有寫這個,我只需要維護它) – ilitirit 2008-10-06 16:02:25