Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: открытие дополнительных баз данных не возможно  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Nebo
В свойствах запроса установите, что он статический.

Для запроса с объединениями пункт Тип набора записей в свойствах отсутствует(
30 авг 18, 15:14    [21659006]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Nebo
Rikozenit, Ещё сам запрос - может быть разбейте, один пусть на основе другого, объединения (джойны) между запросами распределите.Может поможет.

Да уж и так вроде весь разбит не знаю куда больше.
Тут просто ситуация странная! Ведь отчёт открывается без проблем. А вот если его перезапускаешь через DoCmd - то он уже не открывается. ТО есть какой-то стек или ещё что-то перезаполняется и усё. Может как-то реально его сбросить?..
30 авг 18, 15:17    [21659013]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit
Nebo
Rikozenit, Ещё сам запрос - может быть разбейте, один пусть на основе другого, объединения (джойны) между запросами распределите.Может поможет.

Да уж и так вроде весь разбит не знаю куда больше.
Тут просто ситуация странная! Ведь отчёт открывается без проблем. А вот если его перезапускаешь через DoCmd - то он уже не открывается. ТО есть какой-то стек или ещё что-то перезаполняется и усё. Может как-то реально его сбросить?..


Проверьте в составных запросах, чтобы везде была статика. Это раз.
Второе: подстраивайтесь по ситуацию как-то, как-то по другом может это всё запускайте.
Ещё и лучше может получиться в итоге. Обойти надо этот глюк как-то, да и всё. )
30 авг 18, 18:18    [21659295]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
"Открытие дополнительных баз невозможно"

Эта проблема достала. Как только что-то серьёзное делаешь, возникает эта проблема.
Видите - у Вас даже в отчётах. У меня не было такого.

Попробуйте этот отчёт вообще выбрасывать в Excel или в word

А что делать ? В общем-то Акс неплохо работает.

Что они там в Майкрософте думают? Зачем они создали эту проблему.
30 авг 18, 18:22    [21659299]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit,

обходите проблемы подобного рода )
я уже не сражаюсь с Аксом, не работает что-то - делаем по другому.
30 авг 18, 18:24    [21659301]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
В общем, я заметил, что при перезапуске отчёта через 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]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit,
автор
В общем, я заметил, что при перезапуске отчёта через docmd даже без всяких фильтров выскакивает ошибка про "Открытие доп баз", но если открывать отчёт с заранее внесённым в него фильтром кликая мышкой по кнопке вызова этого отчёта - всё ок! Поэтому решил свою проблему путём имитации клика мышкой.

Понимаю, что решение очень стрёмное, но оно отлично работает) Правда постоянно включает/выключает NumLock на клаве))


Про что я и говорю. Не сражаться с Аксом, а обойти проблему хоть как-то. А что делать остаётся?

Помню как в 2003 Аксе мерцали экраны, пришлось как-то выкручиваться, только потом MS в третьем сервис паке устранил проблему.
28 сен 18, 13:06    [21689021]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Вроде как, если база лежит в MS SQL сервере, то не возникает сообщение "Открытие дополнительных баз данных не возможно "

Да?
28 сен 18, 13:08    [21689023]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 464
Rikozenit,
т.е. так не работает?
+
Private Sub Report_Open(Cancel As Integer)
dim strsql$
 strSQL = "УСЛОВНЫЙ ЗАПРОС без фильтра"
Me.RecordSource = strSQL
End Sub

Private Sub Ф_изделие_Click()
dim filtr$
filtr = InputBox("Введите название изделия")
If filtr="" then exit sub
zakr_otkr filtr
End Sub

Private Sub zakr_otkr (filtr$)
        Me.Filter = "[Наименование9] like '*" & filtr & "*'"
        Me.FilterOn = True
End Sub

а ещё может при открытии можно использовать секцию "WhereCondition" команды docmd.openreport, OpenArgs тоже очень популярна, название фильтра наконец.
28 сен 18, 21:41    [21689571]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
vmag
Member

Откуда: MP
Сообщений: 3147
Ой не правильно вы трактуете фразу "Открытие ... не возможно"...
Правда это вина самого микрософта, правильный перевод такой "Создание дополнительных баз данных не возможно"...
Микрософт смотрит что вы делаете и как вы делаете, и если руки совсем кривые - то и выходит такой комментарий... ну типа поигрались с одной бд и хватит...
28 сен 18, 23:14    [21689634]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
vmag
Ой не правильно вы трактуете фразу "Открытие ... не возможно"...
Правда это вина самого микрософта, правильный перевод такой "Создание дополнительных баз данных не возможно"...
Микрософт смотрит что вы делаете и как вы делаете, и если руки совсем кривые - то и выходит такой комментарий... ну типа поигрались с одной бд и хватит...


Если Вы пишете про кривые руки, то знаете, где у Майкрософта написано, как надо правильно делать? Где?

Мой Вам совет: сделайте несколько сложных диалоговых динамических форм с комбобоксами и разными табличками на вкладках и откройте одну из другой.
Это обычная задача ентерпрайза. И Вы получите это сообщение.
29 сен 18, 00:40    [21689670]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
vmag
Member

Откуда: MP
Сообщений: 3147
Nebo,

Всё в самом начале популярно объяснил nord-woolf...
Не нравится акцесс - переходите на другие продукты...
Просто многие считают, что суть интерфейса к БД это показать сразу все таблицы на экране,
в этом и есть проблема, но стоит только БД разбить в уме на функциональные части, сразу все становится на свои места
29 сен 18, 01:03    [21689680]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Модератор: Содержание удалено по просьбе автора
29 сен 18, 01:25    [21689686]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
vmag,

автор
Просто многие считают, что суть интерфейса к БД это показать сразу все таблицы на экране,
в этом и есть проблема, но стоит только БД разбить в уме на функциональные части, сразу все становится на свои места


Разная бывает бизнес-логика, которая требует разную реализацию.
Иногда нужно из диалога открывать другой диалог, из него следующий, из него ещё один.
Скажете неправильно проектируется программа? Да нет! Это диалоговый десктоп.
И это нужно пользователю программу, чтобы детализировать какие-то сведения.
Бизнес задачи то бывают сложные, когда на экране нужно можно и нужно сразу показать некий пул информации
без лишних нажатий на кнопки.

Вы видели приборные панели больших самолётов?
29 сен 18, 01:40    [21689690]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Майкрософт вроде нигде не объясняет, что стоит за сухой фразой об этой ошибке.
Чтобы можно было посмотреть, что и почему.
Ошибка появляется, когда очень много информации на экране.
Когда из одного окна открывается другое, из него следующее и так далее.
Нужно ли это? Бывает нужно.
29 сен 18, 01:44    [21689691]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 464
Nebo, соглашусь в с vmag - подобное появление - признак проблем с кодом.
тот код который мы смотрели: фильтр применяется ДО инициализации источника (как оно вообще работает(?)) и т.д.
диалог из диалога, погоняющий диалогом- помойму это признак неуверенности, плохого понимания процесса.
а аналоговый интерфейс самолета - пример как не надо проектировать интерфейсы. автопилот, автоматический контроль завала горизонта, автоматический контроль высоты и пр. и т.п. - это костыли которыми разрабы пытаются закрыть его неудачную реализацию. как пример электронная панель новых авто- у совсем уж топовых - её отсутствие. тесла, убер с беспилотным вождением по дорогам - вот пример для подражания, а не АН-24Б.
так что появление подобного сообщения, помойму это хороший сигнал что код нужно пересмотреть - это правильное действие со стороны мс - когда то надо остановиться.
29 сен 18, 09:30    [21689741]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
alecko,

Уже давно у меня такая ошибка возникает очень редко.
Стараюсь проектировать минималистичные интерфейсы, но так чтобы не снижать комфорт пользователя.
В тоже время я не сторонник такого подхода. Всё учесть невозможно.
И я не могу иметь самое полное знание: какое идеальное сочетание информации нужно пользователю на экране.
Кто делал технические задания тот понимает.
Коллеги я понимаю Ваши советы, но они трудно реализуемы.
В ентерпрайзе есть разные фокусы на информацию, много данных, много сочетаний этих данных.
Разные предпочтения пользователей к составу взаимосвязанной информации на экране.
Ведь речь идёт именно о взаимосвязанной информации на экране.
Что же Вы предлагаете делать уж совсем скудные интерфейсы?

Уж поверьте: я не стараюсь перегружать экраны. У меня давно нет такой ошибки.
Иногда я экспериментирую, когда на экране скажем открыто 4, 5 диалогов детализирующих друг друга.
Или 5 развесистых вкладок, с вкладками и табличками на всём это. Тогда ошибка появится.
На мой взгляд Майкрософт могла бы в 2 раза увеличить предел и мы бы забыли об этой ошибке.
29 сен 18, 11:45    [21689788]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alecko
Member

Откуда: Башкирия
Сообщений: 464
Nebo, все же я пишу про конкретный случай, это когда new ТС использует отчет в качестве формы, и пытается управлять им как в форме (при том что криво даже для формы), а потом клянет MS по чем зря. это неправильно.
Не знаю насчет минималистских интерфейсов - лично мне хватает чтобы забить два экрана под завязку, причем форм /отчетов может быть много. вместо диалогов можно использовать динамический интерфейс.
29 сен 18, 14:58    [21689874]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
alecko
Rikozenit,
т.е. так не работает?
+
Private Sub Report_Open(Cancel As Integer)
dim strsql$
 strSQL = "УСЛОВНЫЙ ЗАПРОС без фильтра"
Me.RecordSource = strSQL
End Sub

Private Sub Ф_изделие_Click()
dim filtr$
filtr = InputBox("Введите название изделия")
If filtr="" then exit sub
zakr_otkr filtr
End Sub

Private Sub zakr_otkr (filtr$)
        Me.Filter = "[Наименование9] like '*" & filtr & "*'"
        Me.FilterOn = True
End Sub

а ещё может при открытии можно использовать секцию "WhereCondition" команды docmd.openreport, OpenArgs тоже очень популярна, название фильтра наконец.


Нет( Ни так ни так не работает. Наверное, это связано с тем, что отчёт висит на запросе с 12 объединениями. Поэтому ещё и применение неких фильтров он уже не вывозит.
3 окт 18, 10:03    [21693721]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit
alecko
Rikozenit,
т.е. так не работает?
+
Private Sub Report_Open(Cancel As Integer)
dim strsql$
 strSQL = "УСЛОВНЫЙ ЗАПРОС без фильтра"
Me.RecordSource = strSQL
End Sub

Private Sub Ф_изделие_Click()
dim filtr$
filtr = InputBox("Введите название изделия")
If filtr="" then exit sub
zakr_otkr filtr
End Sub

Private Sub zakr_otkr (filtr$)
        Me.Filter = "[Наименование9] like '*" & filtr & "*'"
        Me.FilterOn = True
End Sub

а ещё может при открытии можно использовать секцию "WhereCondition" команды docmd.openreport, OpenArgs тоже очень популярна, название фильтра наконец.


Нет( Ни так ни так не работает. Наверное, это связано с тем, что отчёт висит на запросе с 12 объединениями. Поэтому ещё и применение неких фильтров он уже не вывозит.



Можете показать запрос?
Способ открытия отчёта?

Упрощайте всё там

Сделайте этот же отчёт в Excel или в Word.
3 окт 18, 11:23    [21693821]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Nebo, что значит способ открытия отчёта? (Выводить в Exel либо Word нет желания. Хочется, чтобы пользователи работали в одном ПО) + У меня в этом отчёте есть строки, кликнув на которые можно посмотреть доп информацию (прикрепил).
+
        strSQL = "SELECT Склады_Наличие_Технические.Код_изделия, Склады_Наличие_Технические.Наименование9, Склады_Наличие_Технические.ТС AS Кол_во, 'Технологический сектор' AS Склад, 11 AS № " _
& "FROM Склады_Наличие_Технические WHERE (((Склады_Наличие_Технические.ТС)>0)); " _
& "union SELECT Склады_Наличие.Код_изделия, Склады_Наличие.Наименование9, Склады_Наличие.Проводки, 'Проводки' AS Склад, 0 ASFROM Склады_Наличие WHERE (((Склады_Наличие.Проводки)>0));" _
& "Union SELECT Склады_Наличие_Технические.Код_изделия, Склады_Наличие_Технические.Наименование9, Склады_Наличие_Технические.ИЦ, 'Испытательный центр' AS Склад, 30 AS № " _
& "FROM Склады_Наличие_Технические WHERE (((Склады_Наличие_Технические.ИЦ)>0)); " _
& "Union SELECT Склады_Наличие_Технические.Код_изделия, Склады_Наличие_Технические.Наименование9, Склады_Наличие_Технические.ОКК AS Кол_во, 'Отдел контроля качества' AS Склад, 6 AS № " _
& "FROM Склады_Наличие_Технические WHERE (((Склады_Наличие_Технические.ОКК)>0)); " _
& "Union SELECT Склады_Наличие.Код_изделия, Склады_Наличие.Наименование9, Склады_Наличие.ОСиМЗК AS Кол_во, 'Отдел сбыта и межзаводской кооперации' AS Склад, 25 AS № " _
& "FROM Склады_Наличие WHERE (((Склады_Наличие.ОСиМЗК)>0)); " _
& "Union SELECT Склады_Наличие_СМП1.Код_изделия, Склады_Наличие_СМП1.Наименование9, Склады_Наличие_СМП1.УК_СМП AS Кол_во, 'СМП Участок комплектации' AS Склад, 4 AS № " _
& "FROM Склады_Наличие_СМП1 WHERE (((Склады_Наличие_СМП1.УК_СМП)>0)); " _
& "Union SELECT Склады_Наличие_СМП1.Код_изделия, Склады_Наличие_СМП1.Наименование9, Склады_Наличие_СМП1.МУ_СМП AS Кол_во, 'СМП Монтажный участок' AS Склад, 1 AS № " _
& "FROM Склады_Наличие_СМП1 WHERE (((Склады_Наличие_СМП1.МУ_СМП)>0)); " _
& "Union SELECT Склады_Наличие_СМП1.Код_изделия, Склады_Наличие_СМП1.Наименование9, Склады_Наличие_СМП1.СУ_СМП AS Кол_во, 'СМП Сборочный участок' AS Склад, 2 AS № " _
& "FROM Склады_Наличие_СМП1 WHERE (((Склады_Наличие_СМП1.СУ_СМП)>0)); " _
& "Union SELECT Склады_Наличие_СМП1.Код_изделия, Склады_Наличие_СМП1.Наименование9, Склады_Наличие_СМП1.МехУ_СМП AS Кол_во, 'СМП Механический участок' AS Склад, 34 AS № " _
& "FROM Склады_Наличие_СМП1 WHERE (((Склады_Наличие_СМП1.МехУ_СМП)>0)); " _
& "Union SELECT Склады_Наличие_СМП2.Код_изделия, Склады_Наличие_СМП2.Наименование9, Склады_Наличие_СМП2.СМП AS Кол_во, 'СМП Сборочно-монтажное производство' AS Склад, 31 AS № " _
& "FROM Склады_Наличие_СМП2 WHERE (((Склады_Наличие_СМП2.СМП)>0)); " _
& "UNION SELECT Склады_Наличие_СМП2.Код_изделия, Склады_Наличие_СМП2.Наименование9, Склады_Наличие_СМП2.МУ2_СМП AS Кол_во, 'СМП Монтажный участок №2' AS Склад, 9 AS № " _
& "FROM Склады_Наличие_СМП2 WHERE (((Склады_Наличие_СМП2.МУ2_СМП)>0)); " _
& "UNION SELECT Склады_Наличие_СМП2.Код_изделия, Склады_Наличие_СМП2.Наименование9, Склады_Наличие_СМП2.РСУ_СМП AS Кол_во, 'СМП Регулировочно-сдаточный участок' AS Склад, 3 AS № " _
& "FROM Склады_Наличие_СМП2 WHERE (((Склады_Наличие_СМП2.РСУ_СМП)>0)); " _
& "UNION SELECT Склады_Наличие_СМП2.Код_изделия, Склады_Наличие_СМП2.Наименование9, Склады_Наличие_СМП2.УУ_СМП AS Кол_во, 'СМП Участок упаковки' AS Склад, 5 AS № " _
& "FROM Склады_Наличие_СМП2 WHERE (((Склады_Наличие_СМП2.УУ_СМП)>0)); "
    End If


К сообщению приложен файл. Размер - 130Kb
3 окт 18, 11:55    [21693866]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit,

автор
Сделайте этот же отчёт в Excel или в Word.


я дал хороший совет, который поможет обойти проблему )
этот -же ваш сложный запрос с объединениями - только нарисуйте всё в Excel или Word.

Сам запрос с фильтрами выполняется отдельно от отчёта ?
Потом я бы не использовал всякие Input окошки.


Вот что ещё скажу: посмотрел на Ваш запрос - такое не годится.
Переделывайте структуру таблиц. Или ещё что-то. Столько объединений - не надо так делать.
3 окт 18, 12:03    [21693885]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Nebo, с фильтром - такой же запрос, только с условием в sql-запросе: ((Склады_Наличие_СМП1.Наименование9) like '*" & filtr & "*')).
Таблица всего одна: Переносы: №переноса - Наименование - Со_склада - На_склад - кол_во.
Просто чтобы посчитать наличие на каждом складе (приходы и уходы) - для каждого склада необходимо делать отдельные запросы к этой таблице. А чтобы потом сделать общую "Наличие по складам" - необходимо объединить все эти запросы. Вот и получается куча union'ов.
3 окт 18, 12:15    [21693908]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit
Nebo, с фильтром - такой же запрос, только с условием в sql-запросе: ((Склады_Наличие_СМП1.Наименование9) like '*" & filtr & "*')).
Таблица всего одна: Переносы: №переноса - Наименование - Со_склада - На_склад - кол_во.
Просто чтобы посчитать наличие на каждом складе (приходы и уходы) - для каждого склада необходимо делать отдельные запросы к этой таблице. А чтобы потом сделать общую "Наличие по складам" - необходимо объединить все эти запросы. Вот и получается куча union'ов.


Переделывайте структуру таблицы.
StockID - это одно поле.

Склады_Наличие - одна такая таблица желательна.

Разбросали информацию - теперь куча объединений.

Отчёт может не справляться. Зато в Excel Вы выбросите. Там ничего сложного.

Запрос громоздкий, я бы не стал так делать. Как только навороты - это сигнал, что надо вернуться и переделать.
3 окт 18, 13:23    [21694008]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2752
Rikozenit,

Такой запрос и сопровождать сложно ведь. Поле поменяете - ищи его потом по тексту запроса.
Переделывайте.
3 окт 18, 13:25    [21694012]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить