VBA记录集问题

时间:2014-02-17 06:35:32

标签: vba

为什么如果括号中的数字大于1272,则该函数返回所有NA值。如果数字小于1273,则该功能正常。

Set db = OpenDatabase(DBFullName)
Set rs = db.OpenRecordset("SELECT * FROM SGXIO_Database")

 Dim arr As Variant
 Dim temp As Range
 Dim counter As Variant
 Dim num As Integer

 rs.MoveLast
 counter = rs.RecordCount
 rs.MoveFirst

 'bdd is the function name
bdd = Application.Transpose(rs.GetRows(1272))


Set rs = Nothing
db.Close
Set db = Nothing

1 个答案:

答案 0 :(得分:0)

可能是因为ADO糟透了并且遇到了各种你不会想到的内存限制。您可以通过分块来解决您的问题。一次只处理1000条记录。使用GetRows的第二个参数告诉它你上次停止的位置。 http://www.w3schools.com/ado/met_rs_getrows.asp