在 VBA MS ACCESS 中使用 DAO 记录集数据填充数组
Populate array with a DAO recordset data in VBA MS ACCESS
我想做什么
我想要一个循环,如果产品不适合他的存储位置,它会删除产品的存储位置。在这个循环中,我想将 artikelDetail_ID 保存在一个数组中。循环结束后,我希望能够看到所有 artikelDetail_ID 在循环期间被删除并放入数组中。
代码运行时会删除 6 条记录。
我的解决方案
Dim verwijderdeID() As Variant
Dim lengte As Integer
lengte = 0
With recordset_opslag_detail_info
Do Until recordset_opslag_detail_info.EOF
If (huidige_doos_max_aantal - huidige_doos_inhoud >= 0) Then
Exit Do
End If
ReDim verwijderdeID(lengte)
verwijderdeID(lengte) = recordset_opslag_detail_info!ArtikelDetail_ID
lengte = lengte + 1
huidige_doos_inhoud = huidige_doos_inhoud - recordset_opslag_detail_info!Voorraadperartikel
.Edit
!tmea_opslag_locatie = Null
.Update
recordset_opslag_detail_info.MoveNext
Loop
End With
Dim i As Integer
For i = 0 To UBound(verwijderdeID)
MsgBox verwijderdeID(i)
Next
问题
当我的代码找到不止一条记录时,它只会保护数组中的最后一条记录。如果我按照示例尝试使用记录集中的 6 个值填充数组,则只有 verwijderID(5) 会有一个值。
我想做的事情在 VBA 中是不可能的吗?
当您要更改其大小的数组包含您要保留的数据时使用 Redim Preserve
。
Redim
它自己也会改变大小,但它也会擦除数组中的所有数据。
您可以阅读更多相关信息here.
接下来你想改变你的线路:
ReDim verwijderdeID(lengte)
至
ReDim Preserve verwijderdeID(lengte)
我想做什么
我想要一个循环,如果产品不适合他的存储位置,它会删除产品的存储位置。在这个循环中,我想将 artikelDetail_ID 保存在一个数组中。循环结束后,我希望能够看到所有 artikelDetail_ID 在循环期间被删除并放入数组中。
代码运行时会删除 6 条记录。
我的解决方案
Dim verwijderdeID() As Variant
Dim lengte As Integer
lengte = 0
With recordset_opslag_detail_info
Do Until recordset_opslag_detail_info.EOF
If (huidige_doos_max_aantal - huidige_doos_inhoud >= 0) Then
Exit Do
End If
ReDim verwijderdeID(lengte)
verwijderdeID(lengte) = recordset_opslag_detail_info!ArtikelDetail_ID
lengte = lengte + 1
huidige_doos_inhoud = huidige_doos_inhoud - recordset_opslag_detail_info!Voorraadperartikel
.Edit
!tmea_opslag_locatie = Null
.Update
recordset_opslag_detail_info.MoveNext
Loop
End With
Dim i As Integer
For i = 0 To UBound(verwijderdeID)
MsgBox verwijderdeID(i)
Next
问题
当我的代码找到不止一条记录时,它只会保护数组中的最后一条记录。如果我按照示例尝试使用记录集中的 6 个值填充数组,则只有 verwijderID(5) 会有一个值。
我想做的事情在 VBA 中是不可能的吗?
当您要更改其大小的数组包含您要保留的数据时使用 Redim Preserve
。
Redim
它自己也会改变大小,但它也会擦除数组中的所有数据。
您可以阅读更多相关信息here.
接下来你想改变你的线路:
ReDim verwijderdeID(lengte)
至
ReDim Preserve verwijderdeID(lengte)