Несколько значений в одной ячейке из запроса выбора - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь сделать запрос на выборку, чтобы показать значения из двух таблиц.В качестве примера будем использовать «Клиенты» и «Заказы». В таблице «Клиенты» просто есть CustomerID (первичный ключ) и CustomerName (без дубликатов). В таблице «Заказы» показаны CustomerName (внешний ключ) и Order #.

Когда у клиента есть несколько заказов в таблице «Заказ», он выглядит следующим образом:

Jon - Order1
Jon - Order2
Luke - Order1
Luke - ORder2
Luke - Order3
Mark - Order1

. Как мне получить запрос выбора, чтобы отобразить его следующим образом

Jon - Order1, Order2
Luke - Order1, Order2, Order3
Mark - Order1

Не нужноразделяются запятыми. Поле стека тоже будет работать. Моя конечная цель - иметь «форму заказов», в которой каждый клиент перечисляет все свои заказы в одном поле «заказ» в форме /

Примерформы будет текстовым полем с именем клиента и другим текстовым полем для перечисления каждого заказа

Текущий SQL

SELECT tblCustomers.CustomerName, tblOrders.Order#
From tblCustomers INNER JOIN tblOrders ON tblCustomers.CustomerName = tblOrders.CustomerName

1 Ответ

1 голос
/ 11 июня 2019

MS Access изначально не предлагает эту функцию, поэтому вам нужно использовать функцию VBA, аналогичную функции ConcatRelated Аллена Брауна.

Применительно к вашему примеру вы можете использовать эту функцию следующим образом:

select
    t.customername, 
    ConcatRelated("[order#]", "tblorders", "customername = '" & t.customername & "'") 
from
    tblcustomers t

Однако я бы посоветовал не использовать такое представление данных в пользу использования подчиненной формы.


Кроме того, очень странно, что ваши таблицы связаны с клиентом Имя , а не ID .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...