Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 [4] 5 вперед Ctrl→ все |
Rikozenit Member Откуда: Сообщений: 135 |
Для запроса с объединениями пункт Тип набора записей в свойствах отсутствует( |
||
30 авг 18, 15:14 [21659006] Ответить | Цитировать Сообщить модератору |
Rikozenit Member Откуда: Сообщений: 135 |
Да уж и так вроде весь разбит не знаю куда больше. Тут просто ситуация странная! Ведь отчёт открывается без проблем. А вот если его перезапускаешь через DoCmd - то он уже не открывается. ТО есть какой-то стек или ещё что-то перезаполняется и усё. Может как-то реально его сбросить?.. |
||
30 авг 18, 15:17 [21659013] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Проверьте в составных запросах, чтобы везде была статика. Это раз. Второе: подстраивайтесь по ситуацию как-то, как-то по другом может это всё запускайте. Ещё и лучше может получиться в итоге. Обойти надо этот глюк как-то, да и всё. ) |
||||
30 авг 18, 18:18 [21659295] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
"Открытие дополнительных баз невозможно" Эта проблема достала. Как только что-то серьёзное делаешь, возникает эта проблема. Видите - у Вас даже в отчётах. У меня не было такого. Попробуйте этот отчёт вообще выбрасывать в Excel или в word А что делать ? В общем-то Акс неплохо работает. Что они там в Майкрософте думают? Зачем они создали эту проблему. |
30 авг 18, 18:22 [21659299] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Rikozenit, обходите проблемы подобного рода ) я уже не сражаюсь с Аксом, не работает что-то - делаем по другому. |
30 авг 18, 18:24 [21659301] Ответить | Цитировать Сообщить модератору |
Rikozenit Member Откуда: Сообщений: 135 |
В общем, я заметил, что при перезапуске отчёта через docmd даже без всяких фильтров выскакивает ошибка про "Открытие доп баз", но если открывать отчёт с заранее внесённым в него фильтром кликая мышкой по кнопке вызова этого отчёта - всё ок! Поэтому решил свою проблему путём имитации клика мышкой. Итого, в самом отчёте на кнопке фильтра висит: Private Sub Ф_изделие_Click() filtr = InputBox("Введите название изделия") Call zakr_otkr ' вызываем процедуру из глобального модуля End Sub Процедура: Public Function zakr_otkr() Dim navigacia As String navigacia = DLookup("Навигация", "Подразделения", "[Код] =" & otdel) ' сохраняем название Навигации в которой была кнопка вызова отчёта DoCmd.Close acReport, "Склады_все", acSaveNo ' закрываем пресловутый отчёт Forms(navigacia).SetFocus ' " & otdel & " ' делаем активным форму с Навигацией DoCmd.GoToControl "Склады_все" SendKeys """{Enter}""", True ' "кликаем" по кнопке вызова отчёта "Склады_все" End If End Function На событии Открытие отчёта висит: Private Sub Report_Open(Cancel As Integer) If Len(filtr) > 0 Then Me.Filter = "[Наименование9] like '*" & filtr & "*'" Me.FilterOn = True Me.FilterOnLoad = True strSQL = "УСЛОВНЫЙ ЗАПРОС в котором к Наименованию9 применён фильтр like '*" & filtr & "*' " filtr = "" Else Me.Filter = "" Me.FilterOn = False Me.FilterOnLoad = False strSQL = "УСЛОВНЫЙ ЗАПРОС без фильтра" Me.RecordSource = strSQL End Sub Понимаю, что решение очень стрёмное, но оно отлично работает) Правда постоянно включает/выключает NumLock на клаве)) |
28 сен 18, 12:46 [21688991] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Rikozenit,
Про что я и говорю. Не сражаться с Аксом, а обойти проблему хоть как-то. А что делать остаётся? Помню как в 2003 Аксе мерцали экраны, пришлось как-то выкручиваться, только потом MS в третьем сервис паке устранил проблему. |
||
28 сен 18, 13:06 [21689021] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Вроде как, если база лежит в MS SQL сервере, то не возникает сообщение "Открытие дополнительных баз данных не возможно " Да? |
28 сен 18, 13:08 [21689023] Ответить | Цитировать Сообщить модератору |
alecko Member Откуда: Башкирия Сообщений: 778 |
Rikozenit, т.е. так не работает?
а ещё может при открытии можно использовать секцию "WhereCondition" команды docmd.openreport, OpenArgs тоже очень популярна, название фильтра наконец. |
|
28 сен 18, 21:41 [21689571] Ответить | Цитировать Сообщить модератору |
vmag Member Откуда: MP Сообщений: 3912 |
Ой не правильно вы трактуете фразу "Открытие ... не возможно"... Правда это вина самого микрософта, правильный перевод такой "Создание дополнительных баз данных не возможно"... Микрософт смотрит что вы делаете и как вы делаете, и если руки совсем кривые - то и выходит такой комментарий... ну типа поигрались с одной бд и хватит... |
28 сен 18, 23:14 [21689634] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Если Вы пишете про кривые руки, то знаете, где у Майкрософта написано, как надо правильно делать? Где? Мой Вам совет: сделайте несколько сложных диалоговых динамических форм с комбобоксами и разными табличками на вкладках и откройте одну из другой. Это обычная задача ентерпрайза. И Вы получите это сообщение. |
||
29 сен 18, 00:40 [21689670] Ответить | Цитировать Сообщить модератору |
vmag Member Откуда: MP Сообщений: 3912 |
Nebo, Всё в самом начале популярно объяснил nord-woolf... Не нравится акцесс - переходите на другие продукты... Просто многие считают, что суть интерфейса к БД это показать сразу все таблицы на экране, в этом и есть проблема, но стоит только БД разбить в уме на функциональные части, сразу все становится на свои места |
29 сен 18, 01:03 [21689680] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Сообщение было отредактировано: 29 сен 18, 07:14 |
|
29 сен 18, 01:25 [21689686] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
vmag,
Разная бывает бизнес-логика, которая требует разную реализацию. Иногда нужно из диалога открывать другой диалог, из него следующий, из него ещё один. Скажете неправильно проектируется программа? Да нет! Это диалоговый десктоп. И это нужно пользователю программу, чтобы детализировать какие-то сведения. Бизнес задачи то бывают сложные, когда на экране нужно можно и нужно сразу показать некий пул информации без лишних нажатий на кнопки. Вы видели приборные панели больших самолётов? |
||
29 сен 18, 01:40 [21689690] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Майкрософт вроде нигде не объясняет, что стоит за сухой фразой об этой ошибке. Чтобы можно было посмотреть, что и почему. Ошибка появляется, когда очень много информации на экране. Когда из одного окна открывается другое, из него следующее и так далее. Нужно ли это? Бывает нужно. |
29 сен 18, 01:44 [21689691] Ответить | Цитировать Сообщить модератору |
alecko Member Откуда: Башкирия Сообщений: 778 |
Nebo, соглашусь в с vmag - подобное появление - признак проблем с кодом. тот код который мы смотрели: фильтр применяется ДО инициализации источника (как оно вообще работает(?)) и т.д. диалог из диалога, погоняющий диалогом- помойму это признак неуверенности, плохого понимания процесса. а аналоговый интерфейс самолета - пример как не надо проектировать интерфейсы. автопилот, автоматический контроль завала горизонта, автоматический контроль высоты и пр. и т.п. - это костыли которыми разрабы пытаются закрыть его неудачную реализацию. как пример электронная панель новых авто- у совсем уж топовых - её отсутствие. тесла, убер с беспилотным вождением по дорогам - вот пример для подражания, а не АН-24Б. так что появление подобного сообщения, помойму это хороший сигнал что код нужно пересмотреть - это правильное действие со стороны мс - когда то надо остановиться. |
29 сен 18, 09:30 [21689741] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
alecko, Уже давно у меня такая ошибка возникает очень редко. Стараюсь проектировать минималистичные интерфейсы, но так чтобы не снижать комфорт пользователя. В тоже время я не сторонник такого подхода. Всё учесть невозможно. И я не могу иметь самое полное знание: какое идеальное сочетание информации нужно пользователю на экране. Кто делал технические задания тот понимает. Коллеги я понимаю Ваши советы, но они трудно реализуемы. В ентерпрайзе есть разные фокусы на информацию, много данных, много сочетаний этих данных. Разные предпочтения пользователей к составу взаимосвязанной информации на экране. Ведь речь идёт именно о взаимосвязанной информации на экране. Что же Вы предлагаете делать уж совсем скудные интерфейсы? Уж поверьте: я не стараюсь перегружать экраны. У меня давно нет такой ошибки. Иногда я экспериментирую, когда на экране скажем открыто 4, 5 диалогов детализирующих друг друга. Или 5 развесистых вкладок, с вкладками и табличками на всём это. Тогда ошибка появится. На мой взгляд Майкрософт могла бы в 2 раза увеличить предел и мы бы забыли об этой ошибке. |
29 сен 18, 11:45 [21689788] Ответить | Цитировать Сообщить модератору |
alecko Member Откуда: Башкирия Сообщений: 778 |
Nebo, все же я пишу про конкретный случай, это когда new ТС использует отчет в качестве формы, и пытается управлять им как в форме (при том что криво даже для формы), а потом клянет MS по чем зря. это неправильно. Не знаю насчет минималистских интерфейсов - лично мне хватает чтобы забить два экрана под завязку, причем форм /отчетов может быть много. вместо диалогов можно использовать динамический интерфейс. |
29 сен 18, 14:58 [21689874] Ответить | Цитировать Сообщить модератору |
Rikozenit Member Откуда: Сообщений: 135 |
Нет( Ни так ни так не работает. Наверное, это связано с тем, что отчёт висит на запросе с 12 объединениями. Поэтому ещё и применение неких фильтров он уже не вывозит. |
|||
3 окт 18, 10:03 [21693721] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Можете показать запрос? Способ открытия отчёта? Упрощайте всё там Сделайте этот же отчёт в Excel или в Word. |
|||||
3 окт 18, 11:23 [21693821] Ответить | Цитировать Сообщить модератору |
Rikozenit Member Откуда: Сообщений: 135 |
Nebo, что значит способ открытия отчёта? (Выводить в Exel либо Word нет желания. Хочется, чтобы пользователи работали в одном ПО) + У меня в этом отчёте есть строки, кликнув на которые можно посмотреть доп информацию (прикрепил).
К сообщению приложен файл. Размер - 130Kb |
|
3 окт 18, 11:55 [21693866] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Rikozenit,
я дал хороший совет, который поможет обойти проблему ) этот -же ваш сложный запрос с объединениями - только нарисуйте всё в Excel или Word. Сам запрос с фильтрами выполняется отдельно от отчёта ? Потом я бы не использовал всякие Input окошки. Вот что ещё скажу: посмотрел на Ваш запрос - такое не годится. Переделывайте структуру таблиц. Или ещё что-то. Столько объединений - не надо так делать. |
||
3 окт 18, 12:03 [21693885] Ответить | Цитировать Сообщить модератору |
Rikozenit Member Откуда: Сообщений: 135 |
Nebo, с фильтром - такой же запрос, только с условием в sql-запросе: ((Склады_Наличие_СМП1.Наименование9) like '*" & filtr & "*')). Таблица всего одна: Переносы: №переноса - Наименование - Со_склада - На_склад - кол_во. Просто чтобы посчитать наличие на каждом складе (приходы и уходы) - для каждого склада необходимо делать отдельные запросы к этой таблице. А чтобы потом сделать общую "Наличие по складам" - необходимо объединить все эти запросы. Вот и получается куча union'ов. |
3 окт 18, 12:15 [21693908] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Переделывайте структуру таблицы. StockID - это одно поле. Склады_Наличие - одна такая таблица желательна. Разбросали информацию - теперь куча объединений. Отчёт может не справляться. Зато в Excel Вы выбросите. Там ничего сложного. Запрос громоздкий, я бы не стал так делать. Как только навороты - это сигнал, что надо вернуться и переделать. |
||
3 окт 18, 13:23 [21694008] Ответить | Цитировать Сообщить модератору |
Nebo Member Откуда: Сообщений: 2858 |
Rikozenit, Такой запрос и сопровождать сложно ведь. Поле поменяете - ищи его потом по тексту запроса. Переделывайте. |
3 окт 18, 13:25 [21694012] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 [4] 5 вперед Ctrl→ все |
Все форумы / Microsoft Access | ![]() |