0

Я пытаюсь объединить результаты поиска. Я нашел one article, описывая это, но не смог заставить его работать.MS Access - объединить значения из связанных записей

Я пытаюсь сделать следующее: - Я создал две таблицы (tblBus и tblJoin). Я связал таблицы (1: M). - Я создал форму поиска с несколькими полями для поиска данных. - Я также создал запрос.

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

Вот пример того, что я пытаюсь сделать:

Stop Number  -  Route Number 
     110  -  111 
     110  -  222 
     115  -  111 
     115  -  222 

Я хотел бы объединить номера маршрутов, как это:

Stop Number  -  Route Number 
     110  -  111, 222 
     115  -  222, 222 

Оба поля являются Целые поля.

ответ

0

Вам нужно будет использовать набор записей VBA для создания списка чисел с разделителями-запятыми.

VBA сохранит данные, которые будут отображаться во временной таблице.

Ваш VBA откроет набор записей на основе SQL-запроса, который содержит данные вашего примера. Код будет проходить через каждую строку при обнаружении данных, когда число в первом столбце изменяет сброс строковой переменной на пустую строку. По мере того как он пересекает каждую строку, он добавляет строку с разделителями-запятыми.

В качестве альтернативы вы можете написать функцию, которая строит одну строку с разделителями-запятыми, которая вызывается запросом. Вызывающий тихий будет перечислять только уникальные значения в первом столбце. Функция может быть медленнее, чем метод VBA. Какой метод вы используете, зависит от количества строк в таблице и скорости.

+0

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

+0

Google открывает записи в VBA с использованием динамического SQL или с использованием параметров. Я считаю, что динамический SQL проще и проще в работе. Там много помощи о его вещах. – HarveyFrench

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