我在Excel中使用vba和访问数据库。访问数据库是一个包含3列的表; OrderIDs是一列数字,表示特定项目的顺序,OrderDescription是包含项目描述的列,Item#是对每个特定项目给出数字的列(如果项目是与另一个相同,它们都是相同的项目)。连接到数据库的VBA二维数组
我需要在Excel中建立一个二维数组,使用VBA控制哪些物品是在哪些订单中购买的。这些行将是订单ID,列将是项目ID。此数组的元素将包含一个指示符(如True或“1”),指示此订单包含某些项目。例如,如果订单购买了物品ID 1,5和26,则第6行(代表订单ID 6)在第1,5和26列中将具有“真”。该订单的所有其他列将为空白。
为了做到这一点,我想我必须确定最大订单数量(39)和最大项目数量(33)。这些信息在我可以使用.connection和.recordset连接到的数据库中可用。某些订单号和某些项目号可能不会显示。
请注意,这可能是一个稀疏的数组(不是很多条目),因为大多数订单只包含几个项目。我们不关心客户购买了多少物品,只是该物品是根据此订单购买的。
我的问题是我该如何设置这个数组?我尝试了一个循环,它会将订单号的值分配给一个数组,然后将这些项的数字分配给一个数组,然后将数组的大小标注为这些大小,但它不会工作。
有没有办法让一个数组的元素返回一个True值(如果存在的话)?
感谢您的帮助
请问该返回元件,使得orderItemArray(1,24)=真,如果第24项是在订单编号1? – 2010-12-13 00:22:43
我承认存在一个问题,那就是如果有缺失的物品,上面就会遗漏那个物品。但是,这很容易用项目编号表进行纠正。 – Fionnuala 2010-12-13 00:31:29
真棒我会试试看,谢谢。下一步是将该数组转换为一个同时出现的矩阵,将项目编号作为行和项目编号读取为列,并将两件事物一起进行比较。抱歉不断问,但你知道制定策略吗? – 2010-12-13 00:55:02