2016-09-08 2 views
0

Я пытаюсь разделить данные, разделённые на «;», например, ниже:доступа - Разделение данных в нефиксированное число столбцов

plastic; rubber; paper; wood 

Однако количество записей изменений на клетки и все примеров, которые я видел на этом, как показано ниже, уже знают, сколько столбцов нужно разбить на данные.

How do you split data from one column into two?

И я не могу просто разбить ячейку в колонны перед тем, как загрузить его в доступ, потому что этот список является только одна ячейка в крупную базу данных.

Есть ли способ разделить данные на число столбцов, которые ему нужны, а не на предопределенное число?

+2

Вы можете использовать SPLIT https://support.microsoft.com/en-ie/kb/266289, он может быть медленным и требует кода. – Fionnuala

+0

Не могли бы вы объяснить немного больше вашего вопроса? Вы имеете в виду, что у вас есть строка данных, разделенных символом ';' в vba macro? И вы хотите разбить эту строку на таблицу Access? другие строки? используя SQL или vba? – Blenikos

+0

@Blenikos извините, я буду расширяться. У меня есть список в ячейке таблицы Access, которую я пытаюсь разбить на столбцы. Я надеялся использовать редактор встроенных SQL-запросов, но он, похоже, не работает. – Exostrike

ответ

0

В Access SQL нет функции разделения, и вы не можете делать то, что хотите, используя только один запрос.

Вам понадобится комбинация vba/macro и SQL для выполнения того, что вы хотите. Однако сейчас ваш вопрос заключается в том, чтобы быть в состоянии помочь вам в точности.

Я порекомендую вам начать с создания макроса, считанного из таблицы в строку с использованием SQL-запроса (сохраненного или нет) и использовать функцию split, упомянутую в комментариях выше. Затем разделите строку, вы можете хранить ее, где хотите, используя запрос или что-то еще, что вы хотите.

Ваш запрос должен быть следующим: SELECT phrase FROM Table Затем вы просматриваете результаты на наборе записей с помощью цикла, используйте разделение в каждом из этих результатов и сохраняете результат в массиве. Наконец, сохраните результат массива в таблицу, используя снова SQL-запрос.

раскол можно использовать так:

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

, например, вы можете сделать следующее

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

Для получения дополнительной информации о расколе вы можете увидеть здесь: https://www.techonthenet.com/access/functions/string/split.php

Смежные вопросы