数组 - 下标超出范围错误 - 访问VBA

时间:2015-12-14 16:15:34

标签: excel vba

我不熟悉Access VBA中的编码。我正在尝试运行以下代码从Access表中提取所选记录并将它们导出到Excel,但它一直向我显示超出范围的'下标' error.This是我收到错误的代码的一部分。任何帮助,将不胜感激。谢谢

Set db = CurrentDb()
Set rec = db.OpenRecordset("Tablename", dbOpenDynaset)


Dim k As Integer
Dim n() As Variant
Dim m() As Variant
Dim p() As Variant
Dim q() As Variant
Dim size As Integer
k = 10
i = 1
If Not rec.EOF Then
rec.MoveFirst
rec.FindFirst ("Variable1 = '" & Me.Variable1.Value & "' AND Variable2 = " &       Me.Variable2.Value & " AND Variable3 = '" & Me.Variable3.Value & "'")
size = DCount("[Field4]", "Tablename", "Variable1 = '" & Me.Variable1.Value & "' AND Variable2 = " & Me.Variable2.Value & " AND Variable3 = '" & Me.Variable3.Value & "'")
ReDim n(size) As String
ReDim m(size) As String
ReDim p(size) As String
ReDim q(size) As String

Do Until rec.EOF



If Not IsNull(rec.Fields("Field4")) Then
n(i) = rec.Fields("Field4")
WKS.Cells((k), 1) = n(i)
End If

If Not IsNull(rec.Fields("Field3")) Then
m(i) = rec.Fields("Field3")
WKS.Cells((k), 2) = m(i)
End If

If Not IsNull(rec.Fields("Field2")) Then
p(i) = rec.Fields("Field2")
WKS.Cells((k), 3) = p(i)
End If

If Not IsNull(rec.Fields("Field1")) Then
q(i) = rec.Fields("Field1")
WKS.Cells((k), 4) = q(i)
End If

rec.MoveNext
    k = k + 1
    i = i + 1

Loop
End If
Set rec = Nothing

0 个答案:

没有答案