Ms access Ms Access ReDim多维阵列

Ms access Ms Access ReDim多维阵列,ms-access,vba,Ms Access,Vba,重拨多维阵列的第一维度的最佳做法是什么 这个数组根本不会很大,所以我认为不需要定制类数据类型和集合。第一维度可能永远不会超过25,但我不能确定这一点。然而,第二个维度总是两个。(第25行,第2列) 我希望阵列是动态的,因为我不知道客户将来可能会添加多少不同的类别 我在几个数据集的联合查询中尝试了SELECT DISTINCT,以提前获得类别计数,但由于涉及的动态性,这并没有返回我想要的结果。在将列表添加到列表中之前,有太多的情况需要考虑,因此需要动态数组。 为什么不将数组中的成员保存在表中,并用

重拨多维阵列的第一维度的最佳做法是什么

这个数组根本不会很大,所以我认为不需要定制类数据类型和集合。第一维度可能永远不会超过25,但我不能确定这一点。然而,第二个维度总是两个。(第25行,第2列)

我希望阵列是动态的,因为我不知道客户将来可能会添加多少不同的类别


我在几个数据集的联合查询中尝试了SELECT DISTINCT,以提前获得类别计数,但由于涉及的动态性,这并没有返回我想要的结果。在将列表添加到列表中之前,有太多的情况需要考虑,因此需要动态数组。

为什么不将数组中的成员保存在表中,并用查询操作该数组?这样一个小的数据集,不会有明显的速度损失。

据我所知,数组的第一个维度无法重新排序。我不得不做一些类似的事情,所以我改变了存储数组的方式,所以在你的例子中,使用2作为第一维度,因为它是固定的,然后重新命名第二维度。然后,当实际使用数据时,我翻转数组,使列变成行,反之亦然。使用
Redim Preserve arrayName(2,newDim)
来执行此操作(Preserve关键字保留您的数据,如果没有它,阵列将在增大大小之前被擦除)。@RianBattle这是一个好主意,但想怎么做却伤了我的头。但我最终还是成功了,但我不确定我是否喜欢这个解决方案。我已经从练习中走出来,稍后将以全新的眼光再次审视它。