【问题标题】:Access - Splitting data into unfixed number of columnsAccess - 将数据拆分为不固定数量的列
【发布时间】:2017-06-13 01:03:40
【问题描述】:

我正在尝试拆分由“;”分隔的数据,例如:

plastic; rubber; paper; wood

但是,单元格上的记录数发生了变化,并且我在下面看到的所有示例都已经知道数据要分成多少列。

How do you split data from one column into two?

在将单元格加载到访问之前,我不能简单地将其拆分为列,因为此列表只是更大数据库中的一个单元格。

有没有办法将数据拆分为所需的列数而不是预定的列数?

【问题讨论】:

  • 您可以使用 SPLIT support.microsoft.com/en-ie/kb/266289,它可能会很慢并且需要代码。
  • 您能否再解释一下您的问题?你的意思是你有一串由';'分隔的数据在vba宏中?您想将该字符串拆分为 Access 表吗?其他字符串?使用 SQL 还是 vba?
  • @Blenikos 抱歉,我会扩展。我在 Access 表格单元格中有列表,我试图将其分解为列。我曾希望使用 Access 内置 SQL 编辑器,但它似乎不起作用。
  • 你还没有解释你想用分割元素做什么。把它们写到一张桌子上?同一张桌子还是不同的桌子?那么你怎么知道这个表需要多少列呢?列名是什么? ...
  • 您是否正在尝试做类似this question 中描述的事情?

标签: sql ms-access


【解决方案1】:

Access SQL 中没有拆分功能,您无法仅使用一个查询来做您想做的事情。

您需要结合使用 vba/macro 和 SQL 来完成您想要的。但是,您现在的问题很笼统,以便能够准确地帮助您。

我建议您从构建宏开始,使用 SQL 查询(是否保存)从表中读取字符串,然后使用上面 cmets 中提到的 split 函数。然后是拆分后的字符串,您可以使用查询或您想要的任何其他方式将其存储在任何您想要的位置。

您的查询应该是:SELECT phrase FROM Table 然后,您使用循环遍历记录集上的结果,在每个结果中使用 split 并将结果存储到数组中。最后再次使用 SQL 查询将数组的结果存储到表中。

split 可以这样使用:

Split ( expression [,delimiter] [,limit] [,compare] )

例如,您可以执行以下操作

Split ("one:two:three", ":")
Result: {"one", "two", "three"}

有关拆分的更多信息,您可以在此处查看: https://www.techonthenet.com/access/functions/string/split.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    相关资源
    最近更新 更多