VB에서 2 개의 다차원 배열을 어떻게 연결합니까?
-
05-07-2019 - |
문제
이 코드가 있습니다.
rs1 = getResults(sSQL1)
rs2 = getResults(sSQL2)
RS1 및 RS2 및 2D 어레이. 첫 번째 인덱스는 열 수 (정적)를 나타내고 두 번째 인덱스는 행의 수 (동적)를 나타냅니다.
두 배열에 가입하여 RS3에 저장해야합니다. 그래도 RS1 유형과 RS2가 어떤지 모르겠습니다.
해결책 2
나는 그것을 알아 냈다. 내가 올바른 방식으로하고 있었다는 것이 밝혀졌습니다. 당신은 세 번째 배열도 필요하지 않습니다.
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
제휴하지 않습니다 StackOverflow