|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
Добрый день. Пожалуйста, помогите решить проблему. Для примера своей задачи. Есть запрос: - Поле 1: [Имя клиента] - Поле 2 (поле, допускающее несколько значений*): [Даты] (например 1.06.2018; 6.06.2018) Нужно вывести несколько полей в одном поле (Поле 3) в виде столбика: Клиент: "Фирма" Даты: 1.06.2018; 6.06.2018 В поле 3 пробовал делать так: "Клиент: " & [Имя клиента] & Chr(13) & Chr(10) & "Даты: " & [Даты]. Выдает сообщение: Поле, допускающее несколько значений, недопустимо в таком выражении. Пробовал, но безуспешно - CStr([Даты] - недопустимое выражение - CDate([Даты].[Value] - выводит дату, правда неверную и добавляет строки в запросе (т.е. неприемлемо). * отказаться от поля, допускающего несколько значений уже невозможно (работающая база с большой историей) Заранее благодарю за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 07:23 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich, большинство людей тут отвечающих не работают с многозначными полями, ИМХО. И даже считают их вредными. Я в большей части поддерживаю эту кочку зрения. Хотя в некоторых случаях они довольно удобны. Поэтому почитай статью от MS -> Руководство по полям, одновременно допускающим несколько значений и Использование в запросах полей, одновременно допускающих несколько значений IvanVasilich* отказаться от поля, допускающего несколько значений уже невозможно (работающая база с большой историей)Решается успешно "старыми" методами реляционных баз данных. Данные можно успешно извлечь (см статьи) и сделать по-человечески. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 07:39 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich, так-то приложи небольшой пример с проблемой (необязательно саму базу, можно модель), подумаем. ЗЫ. есть идеи, но делать тестовую базу неохота, да и некогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 07:43 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich* отказаться от поля, допускающего несколько значений уже невозможно (работающая база с большой историей) бедные пользователи, как же они выбирают даты в огромном списке дат ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2018, 08:22 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
Панург, добрый день. Да, я знаю, что многозначные поля не в почете. Но в моем случае их использование оказалось очень удобным. Прикладываю модель базы. Буду благодарен вам и другим участникам за помощь в решении моей задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 04:33 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilichНо в моем случае их использование оказалось очень удобным. пока 3 строки в таблице и 10 строк в таблице даты ---конечно удобно, особенно, если учесть, что есть ещк поле с множественным выбором что будет, когда дат будет 365 и более, причем выбирать придется не смежные 2-3 даты,а в далеко стоящие(например 1 января и 1 июля) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 08:01 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
Уважаемая ПЕНСИОНЕРКА. Поверьте мне на слово. Я и есть один из пользователей. Решение о применении многозначных полей в моей базе было принято несколько лет назад, и оно оправдало себя быстрым выбором значений и еще целым рядом факторов. Неудобств, о которых вы пишите, нет (они решены). Мне очень необходимо решение моей задачи, а не критика. Помогите, если можете. Заранее благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 08:41 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich, авторПоле 2 (поле, допускающее несколько значений*): [Даты] (например 1.06.2018; 6.06.2018) Это уже не поле таблицы БД, а тупо набор текстовых данных. Даже не приведенный к 1НФ. Поле должно быть атомарным, т.е. значение его должно быть неделимым, т.е. без вот таких извратов типа 1.06.2018; 6.06.2018 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 08:54 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich, три дополнительные поля в таблицу СВЕДЕНИЯ(или рабочую) и 3 запроса КодГазетаТДатаТТипТ1КомпасДаты:07.06.2018; 09.06.2018; 11.06.2018;типы:Большими;Простой;2НавигаторДаты:10.06.2018;15.06.2018;12.06.2018;13.06.типы:Выделенный;Большими;3Родные берегаДаты:12.06.2018;типы:Выделенный;Простой; ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 09:34 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich, D:\Вывод поля с неск_знач180607MM.accdb `Запрос: Запрос` 1 ` Код: sql 1. 2.
` Запрос: Запрос21` 2 ` Код: sql 1. 2. 3. 4. 5.
` Запрос: Запрос22` 3 ` Код: sql 1. 2. 3.
` Запрос: Запрос23` 4 ` Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 09:39 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
alex_p_nIvanVasilich, авторПоле 2 (поле, допускающее несколько значений*): [Даты] (например 1.06.2018; 6.06.2018) Это уже не поле таблицы БД, а тупо набор текстовых данных. Даже не приведенный к 1НФ. Поле должно быть атомарным, т.е. значение его должно быть неделимым, т.е. без вот таких извратов типа 1.06.2018; 6.06.2018 Вы не правы. Это и есть многозначное поле, которое появилось в базах формата ACCDB. Панург давал ссылки на материалы по ним. Так, что просто изучите сначала документацию. При помощи них можно реализовать связь многие-ко многим А ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 09:44 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
alex_p_nЭто уже не поле таблицы БД, а тупо набор текстовых данных. Даже не приведенный к 1НФ. Поле должно быть атомарным, т.е. значение его должно быть неделимым, т.е. без вот таких извратов типа 1.06.2018; 6.06.2018 JossПри помощи них можно реализовать связь многие-ко многим АОно и реализовано, просто доступа простого нет к этим таблицам. Но это именно вариант могие-ко-многим. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 09:52 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
Joss При помощи них можно реализовать связь многие-ко многим А это удобно , когда надо прицепить справочники типа ИНОСТРАННЫЕ ЯЗЫКИ(английский, французский...) , но и то, если --список не слишком длинный(в пределах 20-30 --экран) --не надо добавлять еще и дополнительные поля, хотя бы типа УРОВЕНЬ ВЛАДЕНИЯ, СЕРТИФИКАТЫ ПЕРЕВОДЧИКА и т.д из своей практики : Состав изделия --деталь может входить в десятки изделий из сотен возможных --деталь имеет много технологических переходов связь М:М по коду детали но вряд ли приемлем множественный выбор ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 09:56 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
JossЭто и есть многозначное поле, которое появилось в базах формата ACCDB. Панург давал ссылки на материалы по ним. Так, что просто изучите сначала документацию. При помощи них можно реализовать связь многие-ко многим А автортипы:Большими;Простой; к какой дате относится какой тип намного разумнее иметь таб1(код1, код газеты.....) таб2(код2,код1,дата или ее код, код типа...) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 10:00 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, благодарю вас за вариант решения. Преклоняюсь перед вами, ваше решение потребовало столько труда. Как я понял, с помощью запросов на обновление в таблицу в дополнительные новые поля помещаются данные в текстовом виде, извлеченные из многозначных полей. Потом задача становится решаемой. Не ожидал, что решение может быть таким громоздким. Видимо, это плата за использование многозначных полей? Ведь кажется вот оно, в запросе это многозначное поле. Его значение можно скопировать, например, в текстовый файл. - Неужели его невозможно извлечь в вычисляемое поле запроса как-то проще? - Может быть все-таки есть более простое решения этой задачи? Уважаемые профессионалы. Пожалуйста, помогите решить задачу более простым способом. Заранее благодарю за помощь всех участников обсуждения. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 12:38 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
Обращение ко всем ненавистникам многозначных полей. Осмелюсь предположить, что у вас просто не возникала задача, чтобы вы могли оценить пользу от многозначных полей: - Когда выбор идет из короткого списка, делать выбор кликами очень удобно - Гораздо быстрее, чем добавлять в табличную форму из поля со списком - Наглядно видно, что выбрано, а что нет. Легко вносить исправления Я несколько лет использую это решение, и очень им доволен. Задачи, связанные с выборкой по значениям из многозначного поля, делаются без проблем. Вот только сейчас возникло затруднение (о чем это обсуждение), связанное с ограничением, присущим многозначным полям. Благодарю за внимание. Надеюсь, что простое решение должно существовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 13:01 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich- Неужели его невозможно извлечь в вычисляемое поле запроса как-то проще? можно, применив самописную функцию, но вряд ли устроит время выполнения если в вашей таблице будет 1000 строк, у два поля с множественной подстановкой это 2000 раз вызовется функция, а следовательно 2000 раз откроется/закроется связь основной таблицы со справочником а если записей будет не 1000, а 10т-20т --программ зависнет о 50т и более --даже говорить нет смысла ---- разделять же даты придется часто, ибо основа отчетов --это итоги и списки что-где-когда ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 13:04 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
разделять же даты придется часто, ибо основа отчетов --это итоги и списки что-где-когда ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 13:05 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, благодарю вас за терпеливое отношение, за то, что не бросили мою задачу, и еще предлагаете решение. Видимо мне нужно было дать больше подробностей о конечной цели этого дела. 1) На основе запроса не будут делаться отчеты. Это нужно только для запроса. Далее текст из вычисляемого поля (по всем строкам в запросе -- это некоторая небольшая выборка из таблицы), в котором данные в виде столбика (с участием значений из многозначных полей) будет просто копироваться в электронное письмо вручную. 2) Сейчас без проблем из имеющегося запроса (включающего многознач. поля) можно копировать в электронное письмо данные в виде таблицы - Но в этой таблице слишком много столбцов -- это сложно для восприятия - И не хочется делать таблицы в письмах (они могут отображаться некорректно) Поэтому, нужно решение -- сделать каждую строку в виде столбика. 3) Мой запрос работает с текущей выборкой до 100 строк, не более. 4) Я не уверен, что верно понял о самописной функции (наверное, это как Dlookup, да?). Но ваше предложение, что можно создать функцию, мне кажется, и есть решение для моей задачи. Буду вам благодарен, если вы сделаете для меня такое чудо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 13:56 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilichБуду вам благодарен, если вы сделаете для меня такое чудо. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Код: sql 1. 2. 3. 4.
КодГазетадатытипы2Навигатордаты: 10.06.2018 15.06.2018 12.06.2018 13.06.2018типы: Выделенный Большими1Компасдаты: 07.06.2018 09.06.2018 11.06.2018типы: Большими Простой3Родные берегадаты: 12.06.2018типы: Выделенный Простой ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 15:30 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilich, причем могут возникнуть проблемы, если много дат на позицию(строка более 255 символов, это 23 даты) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.06.2018, 15:35 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, благодарю вас. Попробую разобраться (VBA для меня темный лес). Еще раз спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 05:07 |
|
Как в запросе вывести поле, допускающее несколько значений, в составе текста
|
|||
---|---|---|---|
#18+
IvanVasilichПопробую разобраться (VBA для меня темный лес). придется, ибо ваши потребности(проблемы) вышли из возможностей внедренных макросов азбуку вы прошли(внедренные макросы) теперь придется изучать книгу для чтения(код VBA) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 07:34 |
|
|
start [/forum/topic.php?fid=45&fpage=49&tid=1611380]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 156ms |
0 / 0 |