powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Собрать данные из неск.записей в одну строку
11 сообщений из 11, страница 1 из 1
Собрать данные из неск.записей в одну строку
    #39202743
123_456_789
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос возвращает данные (строки):
ААА | БББ |
ВВВ | ААА |
БББ | ДДД |

Как собрать их в строку, типа: "ААА, БББ, ВВВ, ДДД" (т.е. ещё и исключить повторы)?
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39202752
Открыть ADODB.Recordset на UNION запросе вида "SELECT Поле1 FROM Таблица UNION Поле2 FROM Таблица", получить строку методом GetString, указав ", " в качестве разделителя строк. Ну еще удалить лишний ", " в конце строки.
Можно и DAO.Recordset на том же запросе, но тогда строку нужно собирать в цикле по записям.
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203011
123_456_789
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторМожно и DAO.Recordset на том же запросе, но тогда строку нужно собирать в цикле по записям.
Т.е. в 2-х циклах (один - по записям, вложенный - по полям)?
И каждое полученное значение проверять на InStr в уже собранной строке?
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203164
123_456_789Т.е. в 2-х циклах (один - по записям, вложенный - по полям)?
И каждое полученное значение проверять на InStr в уже собранной строке?
Нет. Этот запрос складывает два столбца в один и сам отбрасывает дубли из 2-го столбца, если значение есть в первом.
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203702
123_456_789
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не понял: какой "этот" - ADODB или DAO?
может код покажете?
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203762
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123_456_789, Слияние полей из разных строк запроса.

123_456_789 не понял: какой "этот" - ADODB или DAO?
может код покажете?Тут-> Конкатенация столбцов
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203784
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123_456_789не понял: какой "этот" - ADODB или DAO?
UNION, который предложил Анатолий складывает 2 столбца в один и отбрасывает дубликаты независимо от способа вызова, а если применить метод GetString, который есть долько в DAO, столбец можно превратить в текстовую строку. Пример кода есть в хелпе
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203791
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin... метод GetString, который есть долько в DAO, столбец можно превратить в текстовую строку...?
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39203804
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно в ADO, сорри.
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39204402
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, в ADO изящно получается!
А подскажите про параметры функции, у меня так (слямзил из чужого кода):
Код: vbnet
1.
GetString(, , "", ",")


второй, вроде как, - число выводимых в результате полей
четвёртый - разделитель
а первый и третий за что отвечают?
...
Рейтинг: 0 / 0
Собрать данные из неск.записей в одну строку
    #39204487
\\\\
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Вопрос?,
https://msdn.microsoft.com/en-us/library/ms676975(v=vs.85).aspx
Код: vbnet
1.
Variant = recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)


Parameters
StringFormat
A StringFormatEnum value that specifies how the Recordset should be converted to a string. The RowDelimiter, ColumnDelimiter, and NullExpr parameters are used only with a StringFormat of adClipString.
NumRows
Optional. The number of rows to be converted in the Recordset. If NumRows is not specified, or if it is greater than the total number of rows in the Recordset, then all the rows in the Recordset are converted.
ColumnDelimiter
Optional. A delimiter used between columns, if specified, otherwise the TAB character.
RowDelimiter
Optional. A delimiter used between rows, if specified, otherwise the CARRIAGE RETURN character.
NullExpr
Optional. An expression used in place of a null value, if specified, otherwise the empty string.

Перевод Google
Параметры
StringFormat
Значение StringFormat Enum, который определяет, как Recordset должен быть преобразован в строку. Ряд Разделитель, Колонка Ограничитель и параметры NumExpr используются только с StringFormat из adClipString.
NumRows
Необязательный. Количество строк, которые будут преобразованы в Recordset. Если NumRows не указан, или если оно больше, чем общее количество строк в Recordset, то все строки в Recordset преобразуются.
ColumnDelimiter
Необязательный. Разделитель, используемый между колоннами, если указано, в противном случае символ табуляции.
RowDelimiter
Необязательный. Разделитель, используемый между строк, если указано, в противном случае символ возврата каретки символ.
NullExpr
Необязательный. Выражение используется вместо нулевого значения, если указано, в противном случае пустая строка.
Восторга не разделяю (в разрезе сабжа), будут жуткие тормоза на хоть сколько нибудь значимом количестве данных.
Имхо лучше Метод 3. Заполнение таблицы при помощи запросов (по Митину) по ссылке выше
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Собрать данные из неск.записей в одну строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]