Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2010, 17:19   #11
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

"Инструмента" с помощью которого можно "вывести..в отчете не столбцом, в строку через запятую.." в комплекте MS Access нет, но его можно сделать самостоятельно создав пользовательскую функцию.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 31.01.2010, 19:00   #12
Knn79
 
Регистрация: 27.01.2010
Сообщений: 9
По умолчанию

Добрый вечер, Евгений!!!!!!!!!!
У Вас, наверняка, есть такая созданная функция. Можете, если не трудно, выслать.
Knn79 вне форума Ответить с цитированием
Старый 31.01.2010, 22:53   #13
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

У меня не было запроса и специально для Вас созданной функции, но сделать их можно так:
создайте модуль и разместите в нем подобный код
Код:
Function sField(sName$, sTable$)
Const sQ1 = "select * from ", sQ2 = " where Den_vmr='"
Dim r As Recordset, s$
Set r = CurrentDb.OpenRecordset(sQ1 + sTable + sQ2 + sName + "'")
Do Until r.EOF
    s = s + ", " & r(1) & " - " & r(0)
    r.MoveNext
Loop
r.Close
If Len(s) > 0 Then sField = Mid(s, 2)
End Function
будем считать, что SQL конструкция из текстового файла сохранена под именем Запрос1, тогда "строку через запятую" будет отображать подобная конструкция:
Код:
SELECT Den_vmr, sField([Den_vmr],'Запрос1') AS A
FROM Запрос1
GROUP BY Den_vmr
Пытайтесь, удачи Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.02.2010, 19:18   #14
Knn79
 
Регистрация: 27.01.2010
Сообщений: 9
По умолчанию

ПРИВЕТ, ЕВГЕНИЙ
У меня есть вот такой код:
Public Function CM_RecsInStrExt(ByVal BASE As String _
, ByVal Kv As String _
, Optional ByVal SimvRazd As String = ", ") As String
' Ñêîêîâ
' ôîðìèðóò ñòðîêó èç çàïèñåé òàáëèöû, ðàçäåëÿÿ èõ ðàçäåëèòåëÿìè (çàïÿòûìè)
' BASE - çàïðîñ (ìîæåò áûòü è èìåíåì òàáëèöû èëè ñîõðàíåííîãî çàïðîñà)
' Kv - èìÿ ïîëå, èç êîòîðîãî áðàòü äàííûå
' SimvRazd - ñèìâîë ðàçäåëèòåëü çíà÷åíèé
On Error GoTo Err_

Dim stRet As String
Dim rstTable As Recordset

Set rstTable = CurrentDb.OpenRecordset(BASE, dbOpenDynaset)
' åñëè åñòü çàïèñè òî
If rstTable.RecordCount > 0 Then
' ýòî ïîòîìó ÷òî ýòè çíà÷åíèÿ ðàçäåëÿþòñÿ çàïÿòûìè è ñòàâÿòñÿ ïåðåä ïðèñâàèâàíèåì _
çíà÷-ÿ èç òàáëèöû (ñì. öèêë íèæå), _
à ïåðåä ïåðâûì çíà÷åíèåì çàïÿòóþ ñòàâèòü íå íóæíî
stRet = Nz(rstTable(Kv))
rstTable.MoveNext
End If

Do While Not rstTable.EOF
stRet = stRet & SimvRazd & Nz(rstTable(Kv))
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

Только я не знаю как запустить этот модуль. Модуль наз. Module1
Knn79 вне форума Ответить с цитированием
Старый 01.02.2010, 19:26   #15
Knn79
 
Регистрация: 27.01.2010
Сообщений: 9
По умолчанию

Public Function CM_RecsInStrExt(ByVal BASE As String _
, ByVal Kv As String _
, Optional ByVal SimvRazd As String = ", ") As String
' Скоков
' формирут строку из записей таблицы, разделяя их разделителями (запятыми)
' BASE - запрос (может быть и именем таблицы или сохраненного запроса)
' Kv - имя поле, из которого брать данные
' SimvRazd - символ разделитель значений
On Error GoTo Err_

Dim stRet As String
Dim rstTable As Recordset

Set rstTable = CurrentDb.OpenRecordset(BASE, dbOpenDynaset)
' если есть записи то
If rstTable.RecordCount > 0 Then
' это потому что эти значения разделяются запятыми и ставятся перед присваиванием _
знач-я из таблицы (см. цикл ниже), _
а перед первым значением запятую ставить не нужно
stRet = Nz(rstTable(Kv))
rstTable.MoveNext
End If

Do While Not rstTable.EOF
stRet = stRet & SimvRazd & Nz(rstTable(Kv))
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
Knn79 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос с группировкой значений setrik777 Общие вопросы Delphi 5 20.10.2009 11:49
Копирование строк с включенной группировкой по столбцам ALev Microsoft Office Excel 4 07.07.2009 11:44
SQL запрос на подсчет суммы неотрицательных чисел таблици бд xxxsas SQL, базы данных 2 05.02.2009 23:40
Подскажите правильный запрос c группировкой frostyland Microsoft Office Access 2 03.09.2008 10:22