Подскажите пожалуйста, как из таблицы (запроса) вывести через запятую в поле отчёта все значения поля?
Имя
Номер
Нужно
Ваня, Оля, Юра - в одном поле отчёта.
Спасибо!
1. Создаете мастером перекрестную таблицу, в которой в качестве заголовков будут поля 1, 2, 3. Далее связываете все поля в одно. Select [1] & "," & [2] & "," & [3] as Имена FROM ...
2. Выбираете поля по номеру: Select Dlookup("Имя","Таблица","Номер=1") & "," & Dlookup("Имя","Таблица","Номер=2") & "," & Dlookup("Имя","Таблица","Номер=3") as Имена
3. Создаете внешнюю функцию, в котроу передаете в качестве параметров поле Имя, и далее сохранете результат во внешней переменной. SELECT funИмена([Имя]) ...
4. Можно открыть запрос Openrecordset() или курсор на SQL сервере и обработать построчно каждую запись.
Поскольку таких данных может быть много и очень много думаю 1,2 вариант не подходят. А вот 4 - интересен. Можно более детально как делается и как потом в отчёте используется? И какой тип переменной использовать для хранения данных - ведь текстовое поле может быть большое.
Я открыл Openrecordset, но мне в отчёте не появилась возможность использовать его - могу получить только данній самого отчёта.
Уважаемые Гуру!
Подскажите же, пожалуйста - не для интереса спрашиваю - нужно.
Проблема в том, что следующий код не позволяет брать данные из источника Запрос, а берёт из текущего для отчёта источника.
Подскажите, как в отчёте исходя из текущей заполняемой строчки взять из другой таблицы(запроса) данные, объеденить их и вывести в этой че строчке в отведённом поле?
Private Sub ОбластьДанных_Format(Cancel As Integer, FormatCount As Integer)
Dim rst As DAO.Recordset Dim tm
On Error GoTo AllRecordsInRecordsetErr
Set rst = CurrentDb.OpenRecordset("Запрос", dbOpenDynaset)
With rst 'Цикл до конца таблицы tm = "" Do Until .EOF = True Debug.Print tm If Материал_потолка = Me.Материал_потолка Then tm = tm & " ; " & Номер_помещения End If .MoveNext
Loop
End With Me![Поле11].Value = tm
AllRecordsInRecordsetEnd: On Error Resume Next rst.Close Set rst = Nothing Exit Sub AllRecordsInRecordsetErr: MsgBox "Процедура [...] привела к ошибке:" & vbCrLf & _ Err.Description & vbCrLf & " Err#" & Err.Number, vbCritical Resume AllRecordsInRecordsetEnd
End Sub