powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с ф-цией отбора данных, задолбался!
4 сообщений из 4, страница 1 из 1
Помогите с ф-цией отбора данных, задолбался!
    #39189522
йцукенгшщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Записи в запросе-источнике отсортированы по первому полю, структура такая:
ААА, ппп, ррр,......
ААА, ггг, шшш....
ААА, иии, ььь...
БББ, жжж, ппп...
...................
нужно получить результат:
ААА, ппп & ррр & ггг & шшш & иии & ььь & ....
БББ, , жжж, ппп...
запутался в Do While, For... и т.п.
...
Рейтинг: 0 / 0
Помогите с ф-цией отбора данных, задолбался!
    #39189541
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
йцукенгшщ,
в запросе
Код: sql
1.
2.
3.
4.
5.
SELECT Поле1, fff(Поле1)
FROM (SELECT t1.Поле1
FROM t1
GROUP BY t1.Поле1
ORDER BY t1.Поле1)


функция в общем модуле
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Function fff(p1)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("select Поле2,Поле3 from t1 Where Поле1='" & p1 & "'")
If rst.EOF Or rst.BOF Then fff = "": Exit Function
rst.MoveFirst
Do While Not rst.EOF
    s = s & " & " & rst.Fields(0) & " & " & rst.Fields(1)
    rst.MoveNext
Loop
fff = Right(s, Len(s) - 3)
End Function
...
Рейтинг: 0 / 0
Помогите с ф-цией отбора данных, задолбался!
    #39189611
йцукенгшщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, спасибо, так работает!
А как-бы всё в процедуру перенести? Я заполняю ф-цией таблицу в Ecell и обойтись без запроса мне было бы проще.
И ещё: во вложенном запросе Вы группировкой убираете повторы в Поле1.
Я то пытался решить проблему так:
- запрос-источник отсортирован по Полю1 и содержит все нужные поля
- записи последовательно перебираются и пока значение Поля1 не меняется - значения остальных полей собираются в строку
- при изменении значения Поля1 начинается новое формирование.

...поэтому я и написал, что запутался в всех этих Do While, For... и т.п.
...
Рейтинг: 0 / 0
Помогите с ф-цией отбора данных, задолбался!
    #39190053
йцукенгшщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется получилось:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Set rst = CurrentDb.OpenRecordset("Запрос1")
rst.MoveFirst
s = ""
str1 = rst.Fields(0)
Do While Not rst.EOF 
    If str1 = rst.Fields(0) Then
        For i = 1 To 3
            s = s & " " & rst.Fields(i)
        Next i
        rst.MoveNext
    Else
        Debug.Print str1 & " " & s
        s = ""
        str1 = rst.Fields(0)
    End If
Loop
Debug.Print str1 & " " & s


Покритикуйте, если есть за что.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с ф-цией отбора данных, задолбался!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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