如何处理 Access 表中的数组
Posted
技术标签:
【中文标题】如何处理 Access 表中的数组【英文标题】:How to handle arrays in Access tables 【发布时间】:2017-04-11 14:19:13 【问题描述】:我在 MS-Access 中有一个表,它需要包含一个由 4 个(类型编号)值组成的数组。目前它们位于命名字段 VAL1、VAL2、VAL3、VAL4 中。但是,这很麻烦(值的数量可能更大),因为我想在关联的 VBA 代码中使用循环,从数据库表中生成二进制数据文件。
VBA 是否可以使用原始索引值访问表字段?例如,如果我有一个包含以下字段的表:
名称 VAL1 VAL2 VAL3 VAL4
我可以使用通用名称和索引引用字段,以便可以使用 TableName.field(i) 等结构在循环中访问我的 4 个 VAL 字段吗?
【问题讨论】:
不,不是。在这种情况下,不会出现这种情况,即有另一个带有name_id | value_id | value
的表 - 所以每个名称有 4 行与每个值相关。
您可以循环记录集的字段,参见例如这里:***.com/q/11548697/3820271(使用rs.Fields(n).Value
获取值)。但正如亚历克斯所写,您可能应该更改您的表格设计。并使用 Crosstab 查询/Pivot 获取表格视图。
注意索引以0开头。另外,对于类似命名的字段,可以动态构造字段名称并引用:rs.Fields("Val" & n)
。但是,由于您可能需要引用所有字段,而不仅仅是名称相似的字段,请使用索引引用。
@BruceV - 您是说您希望 (n) 个值包含在一个列/字段中,而不是多个列中,并且您希望能够迭代这些值?
正如 alex k 提到的,您可以使用辅助表 1:N 关系来获取所有子值。或者,如果您的应用程序可以处理,请使用 JSON 并将数组保存为字符串。任何循环操作都必须先提取json数组才能访问内容!
【参考方案1】:
我认为现在对您来说会好很多,尤其是从长远来看,如果您将字段命名为与它们实际代表的内容相关。那是我的 .02。
【讨论】:
以上是关于如何处理 Access 表中的数组的主要内容,如果未能解决你的问题,请参考以下文章
如何处理 CORS 策略:没有“Access-Control-Allow-Origin”问题
使用 DataGridView 控件和 Access 数据库查询时如何处理错误?
如何处理dispatch_queue_t dispatch_get_local_queue dispatch_queue_create EXC BAD ACCESS?