1

レコードセット内のアイテムで 2D 配列を埋めようとしていますが、次のエラーが発生し続けます: Microsoft VBScript ランタイム エラー '800a0009' 下付き文字が範囲外: 'UBound'

また、UBound を Ubound(ProxState,1) に変更しようとしましたが、「For」ループの開始に続く行に次のエラーが表示されます: Microsoft VBScript ランタイム エラー '800a0009' 下付き文字が範囲外です

Dim ProxCount, LastProx
ProxCount = 0
Do While Not objRS.EOF
  ProxCount = ProxCount + 1
objRS.MoveNext
Loop

LastProx = ProxCount - 1
objRS.MoveFirst
Dim ProxState

ProxState = Array(LastProx,1)
For i = 0 To UBound(ProxState,0)
  ProxState(i,0) = objRS("ProximityName")
  ProxState(i,1) = objRS("InState")
Next
4

3 に答える 3

2

GetRows() ループする代わりに、一度にすべてを割り当てるために使用できます。

ProxState = objRS.GetRows()

参照: http://www.asp.happycodings.com/DataAccess/code1.html

于 2013-03-28T19:21:24.030 に答える
0

おっと、私はそれについて間違っていたと思います。謝罪!以下は正しくありません。Ubound が要素の数を提供することを確認してください...次のようにコードを変更すると...

For i = 0 To UBound(ProxState,0)-1

それならうまくいくはずです

于 2013-03-28T23:58:21.837 に答える
0

もう1つの方法:

Dim ProxCount
Dim ProxState()
ProxCount = 0

If (not objRS.Eof) Then
    ProxCount = objRS.RecordCount

    ReDim ProxState(ProxCount - 1, 1)

    For i = 0 To ProxCount - 1
      ProxState(i, 0) = objRS("ProximityName")
      ProxState(i, 1) = objRS("InState")
    Next

End If
于 2013-03-29T08:02:18.193 に答える