LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: суммирова...
 Тема: суммирование текстового поля
 
 15.06.2007 21:07:58
makc
48 сообщения


Тема: суммирование текстового поля
Имеем
0001 Иванов
0002 Петров
0003 Сидоров
0002 Иванов
0001 Сидоров
Как можно в запросе или отчете получить ?
0001 Иванов, Сидоров
0002 Петров, Иванов
0003 Сидоров
Я нашел наверняка самый сложный путь, сделал прекрестный запрос в котором получил

Code Иванов Петров Сидоров
0001 Иванов Сидоров
0002 Иванов Петров
0003 Сидоров

и собрал их в конце Иванов&Петров&Сидоров казалось бы пускай так, ведь работает, но к сожелению Петров не всегда попадает в запрос и вся сборка сыпится
Может есть какаянибудь функция типа ЕСЛИ ПЕТРОВ ЭТО ИМЯ ПОЛЯ ТОГДА ПЕТРОВ ИНАЧЕ " " или я с самого начала пошел не по тому пути?



P.S. Общий раздел по запросам
Автор: Makc от 24.01.2004 14:26:51 Источник ...
 15.06.2007 21:07:58
All
4316 сообщения
1-ый


RE: суммирование текстового поля
Такую обработку лучше делать на VBA. Вместо поля Code использовано поле id.
1. Составляем запрос на группировку:
SELECT Table1.id, funjoinFIO([id]) AS FIO FROM Table1 GROUP BY Table1.id;

2. Пишем функцию для объединения строк.
Public Function funJoinFIO(id As Long) As String
Dim dbs As Database, rst As Recordset, i As Long, var1 As Variant, var2
On Error GoTo 999
Set dbs = CurrentDb
funJoinFIO = ""
Set rst = dbs.OpenRecordset("SELECT [FIO] FROM [table1] WHERE [id]=" & id & " ORDER BY [FIO]")
If rst.RecordCount <> 0 Then
With rst
.MoveLast
.MoveFirst
For i = 0 To rst.RecordCount - 1
funJoinFIO = funJoinFIO & rst!FIO & " "
rst.MoveNext
Next
End With
End If
rst.Close
Set dbs = Nothing
Exit Function
999:
MsgBox Err.Description
End Function



P.S. Общий раздел по запросам
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:07:58
makc
48 сообщения


RE: суммирование текстового поля
не понятна строка
Set rst = dbs.OpenRecordset("SELECT [FIO] FROM [table1] WHERE [id]=" & id & " ORDER BY [FIO]"
recordset с таким условием WHERE [id]=" & id & " ничего не дает?


P.S. Общий раздел по запросам
Автор: makc от 27.01.2004 8:29:27 Источник ...
 15.06.2007 21:07:58
All
4316 сообщения
1-ый


RE: суммирование текстового поля
Задачка простая, чуть чуть надо подумать. Этот запрос отбирает табличные записи по id:
[id] [FIO]
0001 Иванов
0001 Сидоров
Сама же функция после обработки этих записей дает текст: Иванов Сидоров, который и выводится в запросе на группировку.



P.S. Общий раздел по запросам
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:07:58
makc
48 сообщения


RE: суммирование текстового поля
СПАСИБО!!! все таки мир не без добрых людей


P.S. Общий раздел по запросам
Автор: makc от 28.01.2004 7:36:02 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: суммирова...
ПоискПоиск  Список форумовСписок форумов  
right