Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 2

Конкатенация строк

08.06.2016, 17:54. Показов 5431. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Подскажите, можно ли в MS Access для каждого уникального логина одним запросом вывести список регионов через запятую?
И если да, то как?
Таблица во вложении.
Вложения
Тип файла: xls Оптимизация.xls (41.5 Кб, 35 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.06.2016, 17:54
Ответы с готовыми решениями:

Конкатенация строк
Дано: 3 строки 1ю строку мы записываем один раз и дальше она просто добавляется каждый раз в этой форме при создании новой записи 2я...

Конкатенация на определенном столбце строки
И снова доброго времени суток уважаемые знатоки своего ремесла! Подскажите пожалуйста каким образом возможно осуществлять конкатенацию на...

Почти конкатенация----столбец в строку
Доброго времени. Уже испробовал всё. Взываю к общественному сознанию. Есть параметрический запрос invoice_du_query (параметры...

8
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
08.06.2016, 18:10
loginClientRegion 
13361Самарская область-
98960Самарская область-
117059Пермский край-
232298Московская область-
251897Тульская область-
259890Московская область-
260838Ленинградская область-
280627Московская область-
302826Свердловская область-
302826Ханты-Мансийский автономный округ - Юграtrue
309012Московская область-
312374Ленинградская область-
315450Московская область-
320615Республика Татарстан (Татарстан)-
320615Самарская областьtrue
320615Ульяновская областьtrue
325937Московская область-
336446Московская область-
359472Краснодарский край-
359472Московская областьtrue
359472Хабаровский крайtrue
361109Московская область-
361363Московская область-
372138Московская область-
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
09.06.2016, 02:46
То есть вы знаете название процесса и не умеете пользоваться поиском по форуму?
1. Сделать из нескольких записей одну
2.
T-SQL
1
Select код, Last(UnionStr1(код,область)) AS FamUnion FROM таблица GROUP BY код order by код
Visual Basic
1
2
3
4
5
6
7
8
9
10
Public Function UnionStr1(id, Fam)
Static IDOld, FamUnion
If IDOld <> id Then
IDOld = id
FamUnion = Null
End If
 
FamUnion = (FamUnion + ", ") & Fam
UnionStr1 = FamUnion
End Function
2
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
09.06.2016, 04:45
alvk,
вах вах
зачем так сложно
у adodb рекордсета есть свойство GetString как раз то что нужно

Visual Basic
1
2
3
4
5
6
Public function DSumStr() as String
Dim rst As ADODB.Recordset 
Set rst = New ADODB.Recordset 
rst.Open "SELECT Клиенты.ФИО FROM Клиенты", CurrentProject.Connection, 3, 3 
DSumStr = Replace(rst.GetString, Chr(13), "; ") 
end function
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
09.06.2016, 04:54
А где второе поле?
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
09.06.2016, 05:38
это для примера использования
а ответ по теме сейчас напишу

Добавлено через 20 минут
ну собственно вот запрос который выкинет результат
T-SQL
1
2
3
4
SELECT a2.ClientRegion, Mid(DSumStr([ClientRegion]),1,Len(DSumStr([ClientRegion]))-2) AS ClientRegions
FROM (SELECT a1.ClientRegion
FROM 201605 AS a1
GROUP BY a1.ClientRegion)  AS a2
а вот функция необходимая для работы этого запроса
Visual Basic
1
2
3
4
5
6
7
Public Function DSumStr(asd As String) As String
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
rst.Open "SELECT a2.login FROM 201605 as a2 Where a2.ClientRegion='" & asd & "'", CurrentProject.Connection, 3, 3
DSumStr = Replace(rst.GetString, Chr(13), ", ")
Set rst = Nothing
End Function
201605 - это имя таблицы

Добавлено через 23 минуты
блин задание не правильно понял
вот переделал

запрос
T-SQL
1
2
3
4
SELECT a2.Login, Mid(DSumStr2([Login]),1,Len(DSumStr2([Login]))-2) AS Logins
FROM (SELECT a1.login
FROM 201605 AS a1
GROUP BY a1.login)  AS a2
функция
Visual Basic
1
2
3
4
5
6
7
Public Function DSumStr2(asd As Long) As String
Dim rst As Object
Set rst = CreateObject("ADODB.Recordset")
rst.Open "SELECT a2.ClientRegion FROM 201605 as a2 Where a2.login=" & asd, CurrentProject.Connection, 3, 3
DSumStr2 = Replace(rst.GetString, Chr(13), ", ")
Set rst = Nothing
End Function
3
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
09.06.2016, 07:40
И всё-таки этот способ ничем не проще других.
0
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,671
09.06.2016, 08:32
Цитата Сообщение от alvk Посмотреть сообщение
И всё-таки этот способ ничем не проще других.
ну тут- как вам сказать
по идее встроенный способ должен работать быстрее чем перебор значений в цикле (хотя - справедливости ради - я этого не проверял)
более того getstring удобно использовать при передаче данных из рекордсета в массив (плохо что нет обратной функции)
0
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 2
09.06.2016, 12:54  [ТС]
Всем спасибо за ответы!
Вопрос решен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.06.2016, 12:54
Помогаю со студенческими работами здесь

Конкатенация полей, полученных из других таблиц
Access 2007 Имеется таблица, значения полей в которой берутся из других через мастер подстановок Код Поле1 1 Иван 2 Пётр ...

Конкатенация строк
Должно быть консольное приложение. Очень простой вопрос, но сам что-то завис, и немогу найти что хочу. Значит так есть такой кусок кода ...

Конкатенация строк
Помогите,пожалуйста,идиоту.Не понимаю как правильно конкатенацию строк написать(&quot;сложение&quot; строк) #include...

конкатенация строк
Доброго времени суток! есть следующий код, который читает файл: char line; string str = &quot;&quot;; ifstream...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru