Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос, Запрос в отчете не столбцом, а строкой 
:(
    Опции темы
KNN79
Дата 29.1.2010, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.1.2010

Репутация: нет
Всего: нет



Не могу вывести запрос в отчете не столбцом, а в строчку через запятую. 
PM MAIL   Вверх
Akina
Дата 29.1.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Аксесс не имеет встроенных средств конкатенации группы, аналогичных мускуловскому group_concat. Придётся писАть свою функцию.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
KNN79
Дата 29.1.2010, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.1.2010

Репутация: нет
Всего: нет



Извените за нескромный вопрос - может эту функцию уже кто-то писал?

PM MAIL   Вверх
bopoha
Дата 29.1.2010, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



KNN79, держи:
Код

Public Function CM_RecsInStrExt(ByVal stSQL As String _
                                , ByVal stFieldName As String _
                                , Optional ByVal SimvRazd As String = ", ") As String
' Скоков
' формирут строку из записей таблицы, разделяя их разделителями (запятыми)
' stSQL - запрос (может быть и именем таблицы или сохраненного запроса)
' stFieldName - имя поле, из которого брать данные
' SimvRazd - символ разделитель значений
On Error GoTo Err_
    
    Dim stRet As String
    Dim rstTable As Recordset
    
    Set rstTable = CurrentDb.OpenRecordset(stSQL, dbOpenDynaset)
    ' если есть записи то
    If rstTable.RecordCount > 0 Then
        ' это потому что эти значения разделяются запятыми и ставятся перед присваиванием _
            знач-я из таблицы (см. цикл ниже), _
            а перед первым значением запятую ставить не нужно
        stRet = Nz(rstTable(stFieldName))
        rstTable.MoveNext
    End If
    
    Do While Not rstTable.EOF
        stRet = stRet & SimvRazd & Nz(rstTable(stFieldName))
        rstTable.MoveNext
    Loop
    
    rstTable.Close
    
    CM_RecsInStrExt = stRet

Exit_:
    Exit Function

Err_:
    Err.Raise Err.Number, "CM_RecsInStrExt() ->" & Err.Description, Err.Description
    Resume Exit_
End Function

PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 29.1.2010, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(bopoha @  29.1.2010,  14:10 Найти цитируемый пост)
перед первым значением запятую ставить не нужно

Чем делать лишнюю проверку, проще ставить запятые ПОСЛЕ, а по окончании процесса безусловно удалить запятую на хвосте.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 29.1.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Akina, так тоже красиво получилось. Не знаю почему, но отрезать последнюю запяту мне не нравится.

Добавлено через 17 секунд
Этой функции уже лет этак 7-8.
PM MAIL WWW ICQ Skype GTalk   Вверх
KNN79
Дата 29.1.2010, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.1.2010

Репутация: нет
Всего: нет



Спасибо.
PM MAIL   Вверх
KNN79
Дата 1.2.2010, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.1.2010

Репутация: нет
Всего: нет



bopoha, здравствуйте. Не подскажите, как запустить этот модуль ?  smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.