Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/68: Рейтинг темы: голосов - 68, средняя оценка - 4.69
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71

Данные разных полей запроса с одно поле через запятую?

16.02.2012, 22:34. Показов 13177. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача. Есть запрос, в котором в отдельных полях хранится Фамилия, Имя, Отчество, и Адрес, телефон и т.п. Соответственно размеры всех полей ОЧЕНЬ разные, особенно адрес, как сделать так чтобы данные из этих полей выводились бы в отчете в различных ячейках таблицы просто через пробел, или через запятую, при этом изменялась бы только высота ячеек таблицы. т.е. если не уместился адрес в одны строчку то высота ячейки 2 строчки стала.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.02.2012, 22:34
Ответы с готовыми решениями:

Города через запятую в одном поле запроса
Народ, помогите плз со следующей задачкой. Есть таблица, в ней 2 столбца: Название компаний и города, где у них есть офисы. Компаний мало,...

Как объединить данные из нескольких полей в одно поле?
Здравствуйте! Есть таблица с полями: Фамилия, Имя, Отчество. Хочу объединить данные из этих полей в одно поле Контакт. Тоже самое хочу...

Данные из разных таблиц БД Access в одно поле
Как реализовать возможность выбора данных из разных таблиц в одном поле?

16
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
17.02.2012, 04:10
Цитата Сообщение от renkonester Посмотреть сообщение
как сделать так чтобы данные из этих полей выводились бы в отчете в различных ячейках таблицы просто через пробел, или через запятую,
Это называется конкатенация.
Сгруппировать строки, а разные значения в столбце записать в одну строку через запятую
1
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
17.02.2012, 08:32
Я так думаю, требуется просто записать в одном поле Фамилия Имя Отчество, Адрес, Телефон по каждой записи. Для этого в свободном поле отчета пишите = [Фамилия] & " " & [Имя] & " " & [Отчество] &", " & [Адрес] & ", " & [Телефон], где заключенные в квадратные скобки - ваши имена полей из источника отчета - таблицы или запроса.
Теперь о высоте ячейки: вы можете в свойствах поля поставить Расширение = Да, тогда высота этой ячейки будет меняться в зависимости от заполняемости, но при этом высота остальных ячеек таблицы меняться не будет, и таблица будет выглядеть некрасиво. О том, как подгонать высоту остальных ячеек под максимальную, можно почитать здесь (код VBA)
2
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
17.02.2012, 21:54  [ТС]
Цитата Сообщение от Ameli Посмотреть сообщение
Я так думаю, требуется просто записать в одном поле Фамилия Имя Отчество, Адрес, Телефон по каждой записи. Для этого в свободном поле отчета пишите = [Фамилия] & " " & [Имя] & " " & [Отчество] &", " & [Адрес] & ", " & [Телефон], где заключенные в квадратные скобки - ваши имена полей из источника отчета - таблицы или запроса.
Супер!!! Именно то что и надо, а еще вопросик, какой такой символ надо в кавычках нарисовать, чтобы вместо пробела или запятой enter был. Ну тоесть переход на следующую строчку.
Фамилия Имя Отчество
Адрес, ...

И чтобы счастье было совсем полным, подскажите пожалуйста, как сделать чтобы Фамилия при этом была жирным, Адрес курсивом, а телефон подчеркнут
0
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
17.02.2012, 22:24
Чтобы было через энтер, выделяем в отдельное поле. Форматирование применяется ко всему полю целиком
0
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
17.02.2012, 22:47  [ТС]
Цитата Сообщение от Ameli Посмотреть сообщение
Чтобы было через энтер, выделяем в отдельное поле. Форматирование применяется ко всему полю целиком

Жаль, прийдется губу закатать.
0
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
18.02.2012, 02:13  [ТС]
А помогите написать выражение, чтобы собрать строку в поле. Надо както добавить условие.
Имеются поля
[проценты]
[рубли]
в них могут быть либо 0 либо значение.
Надо чтобы строка собиралась только из значений не равных 0, а если и проценты и рубли равны 0 то вообще оставить все поле пустым.

Ибо в таком виде
="Оплата по Прейскуранту + " & Round([ЗАЯВКА! Проценты]*100;1) & "% +" & [ЗАЯВКА! Рубли] & "рублей"
выглядит коряво

И может кто знает что за глюк, если не использовать "Round" то проценты *100 выглядят примерно так, хотя вводились ранее целые числа, без дробей.
Всетаки деньги считают
Миниатюры
Данные разных полей запроса с одно поле через запятую?  
0
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
18.02.2012, 02:21  [ТС]
И как в такой сборной ячейке формат используемых в ней дат поменять на длинный
с 10 января 2012 до ....
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
18.02.2012, 10:57
Цитата Сообщение от renkonester Посмотреть сообщение
если и проценты и рубли равны 0 то вообще оставить все поле пустым.
воспользуйтесь iif()
0
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
18.02.2012, 23:57
Здравствуйте renkonester.
"..какой такой символ надо в кавычках нарисовать, чтобы вместо пробела или запятой enter был.."
Вшу задачу на объединение значений нескольких полей можно решать с использованием VBA функции.
Создайте функцию в которой будет обрабатываться текст помещаемый в поле отчета, например:
Visual Basic
1
2
3
4
5
6
7
8
9
Function toAll(v1, v2, v3, v4, v5, v6, v7)
If Nz(v7, 0) > 0  Then
    toAll = "ФИО : " & v1 & " " & v2 & " " & v3
    If Len(v4 & "") > 0 Then toAll = toAll & vbCrLf & "Адрес : " & v4
    If Len(v5 & "") > 0 Then toAll = toAll & vbCrLf & "телефон : " & v5
    If IsDate(v6 & "") Then toAll = toAll & vbCrLf & "дата : " & Format(v6, "d mmmm yyyy г.")
    If Val(v7 & "") > 0 Then toAll = toAll & vbCrLf Format(v7, "0.00")
End If
End Function
а вызывать выполнение функции подобным выражением в поле отчета:
= toAll ([Фамилия]; [Имя]; [Отчество]; [Адрес]; [Телефон]; [Дата]; [Рубли])
после сохранения функции его можно создавать в Построителе выражений.

Евгений.
1
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
19.02.2012, 00:23  [ТС]
Цитата Сообщение от renkonester Посмотреть сообщение
И как в такой сборной ячейке формат используемых в ней дат поменять на длинный?
с 10 января 2012 до ....
что то в справке не могу найти такую функцию

Добавлено через 16 минут
Цитата Сообщение от alvk Посмотреть сообщение
воспользуйтесь iif()
А пример можете какой нибудь написать, что-то из справки пишу выдает ошибку
Пишу

=IIf( [ЗАЯВКА!Условия Проценты] =0, "Оплата по Прейскуранту 10-01 + " & [ЗАЯВКА!Условия Рубли], Round([ЗАЯВКА!Условия Проценты]*100;1))

получаю
0
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
19.02.2012, 00:31  [ТС]
получаю
Миниатюры
Данные разных полей запроса с одно поле через запятую?  
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
20.02.2012, 02:54
Так правильно получаете, в VBA - запятая, в полях на форме - точка с запятой, а у вас как? В IIF запятая, а в Round точка с запятой.
0
 Аватар для ironegg
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
22.02.2012, 01:07
Цитата Сообщение от renkonester Посмотреть сообщение
Жаль, прийдется губу закатат
ну зачем же закатывать? компьютер может все. не говоря уже о том чтобы отформатировать текст. просто нужно подобрать подходящий элемент управления. например, таблицы могут отображать элементы просмотра html, RichTextBox или Spreadsheet.
естественно, попрограммировать придется чуть больше
Цитата Сообщение от renkonester Посмотреть сообщение
какой такой символ надо в кавычках нарисовать, чтобы вместо пробела или запятой enter был
Teslenko_EA, предложил отличный вариант. но, исключительно для полноты картины: прямо в запросе функция Chr возвращает символ по его коду. в данном случае - Chr(13) & Chr(10) (перевод строки и возврат каретки). либо написать пользовательскую функцию которая будет возвращать эти символы или соответствующую константу VBA - vbCrLf. результат выполнения пользовательской функции вызываемой без переменных параметров кэшируется, поэтому этот способ должен работать довольно шустро.
2
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
24.02.2012, 10:36  [ТС]
Цитата Сообщение от ironegg Посмотреть сообщение
прямо в запросе функция Chr возвращает символ по его коду. в данном случае - Chr(13) & Chr(10) (перевод строки и возврат каретки). либо написать пользовательскую функцию которая будет возвращать эти символы или соответствующую константу VBA - vbCrLf
А поподробнее для чайника это можно пояснить, лучше с примером, что такое Chr(13) & Chr(10) я в общих чертах представляю, (в очень общих), в детстве ZX spectrum 48k был , но как и куда в аксе это писать пока не понимаю?

Добавлено через 1 час 8 минут
И всетаки кто может научить чайника как сделать так чтобы в сборном поле

="Заявка №" & [ЗАЯВКА!Заявка] & " от " & [ЗАЯВКА!Дата]

дата имела полный формат?
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
24.02.2012, 10:42
Visual Basic
1
="Заявка №" & [ЗАЯВКА!Заявка] & " от " & format(ЗАЯВКА!Дата;"dd mmmm yyyy")
1
 Аватар для renkonester
2 / 2 / 0
Регистрация: 22.01.2012
Сообщений: 71
06.03.2012, 22:14  [ТС]
Цитата Сообщение от ironegg Посмотреть сообщение
исключительно для полноты картины: прямо в запросе функция Chr возвращает символ по его коду. в данном случае - Chr(13) & Chr(10) (перевод строки и возврат каретки)
ИМХО
ОГРОМНЕЙШИЙ ВАМ РЕСПЕКТ!!!! По моему скромному мнению лучший совет для такого чайника как я. Даже не думал что все так просто. Работает как часы!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2012, 22:14
Помогаю со студенческими работами здесь

Данные адреса из разных вкладок в одно поле
Здравствуйте. Возможно ли реализовать такое, чтобы при выборе одной из организаций (например, у меня ЗАГС), в Форме ФИО - зеленое поле...

Как в одно поле таблицы вставить данные разных запросов
Нужно вывести в одно поле таблицы, данные из разных запросов. Есть таблица "наим показ", есть запросы по каждому показателю, Как??? их...

Вывести поле с конкретным значением из бд, где данные через запятую
Всем привет! Подскажите, пожалуйста, есть таблица бд, например, в поле city есть значения через запятую 0,1,2,3 и т д. (0,1,2,... это...

объединение результатов из разных полей в одно
При подстановке в таблице используется несколько полей. При выборе список состоит из нескольких колонок со значениями, но отображается...

В одно поле или в разных
Уважаемые Форумчане! 1. Подскажите пожалуйста, как лучше хранить ФИО в базе MySQL? В одном поле или в трёх? Какие могут быть подводные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru