|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
Как убрать сообщение о сохранении изменений макета таблицы?14.08.2015, 12:00. Показов 16898. Ответов 15
Метки нет (Все метки)
Добрый день.
Есть форма, на которой - табличная подформа. Ее источник формируется программно, т.е. каждый раз может быть разным. И вот, когда эта форма открывается, отображает нужные данные, и мы пытаемся ее закрыть - она ВСЕГДА выдает сообщение типа "Сохранить изменения макета таблицы такой-то". Причем даже если ничего не менять (ширину столбцов и т.п.). Как можно заблокировать это сообщение, чтобы оно не смущало юзеров?.. Заранее большое спасибо)
0
|
|
| 14.08.2015, 12:00 | |
|
Ответы с готовыми решениями:
15
Как убрать сообщение о сохранении в Ворде Как убрать из макета печатной формы деление на листы? Не обновляется экран эмулятора после изменений макета |
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 14.08.2015, 12:10 | ||||||
|
На событии Unload (Выгрузка) поставьте принудительное сохранение формы
1
|
||||||
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 14.08.2015, 13:15 [ТС] | |
|
mobile, Как всегда, спасибо ОГРОМНОЕ! А я - как всегда туплю)... Такие очевидные прописи... Эхх.
Хмм. Хотя что-то как-то не то, все равно спрашивает((... Добавлено через 4 минуты Может, оно все равно спрашивает потому, что я прописываю команду сохранения на событие выгрузки самой ФОРМЫ, а изменения касаются именно субформы с таблицей?...
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 14.08.2015, 13:43 | |
|
Выложите форму с парой-тройкой субформ замены. Есть варианты, хотелось бы увидеть фактический.
0
|
|
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 14.08.2015, 15:20 [ТС] | |
|
хммм... Наверное, трудно будет отделить форму от всей базы, там на нее кучу повязано действий по формированию источника данных...
Добавлено через 1 час 34 минуты Как-то не получается у меня отделить именно эту форму от всего остального, чтобы выложить(... Может, чем-то поможет, если скажу, что у меня на форме - не подформа табличная, а непосредственно таблица?.. Ну то есть у меня в базе формируется временная таблица (каждый раз с разным количеством полей), которую я и добавил на форму. Объект-источник в данном случае - непосредственно таблица, если я правильно понимаю. И при открытии я еще задал автовыравнивание ширины столбцов по самому широкому значению в столбце (вы когда-то мне советовали эту фишку, с тех пор пользуюсь)).. Вот я подозреваю, что именно это автовыравнивание в данном случае приводит к тому, что даже если пользватель сам не менял ширины столбцов - ему все равно будет задан этот вопрос о сохранении макета...
0
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 14.08.2015, 21:00 | ||||||
|
Жаль, что Вы не можете выложить Ваш вариант. Есть немало разночтений по всяким ситуациям.
Если сделать закрытие главной формы не крестиком, а кнопкой, то вроде бы получается более или менее универсальный вариант: в коде кнопки написать
1
|
||||||
|
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
|
||
| 14.08.2015, 21:07 | ||
|
0
|
||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 14.08.2015, 21:15 | |
|
PuhKMV, у него нет формы в контроле подформы. Вместо нее в SourceObject контрола-контейнера подформы прописано "Таблица.ИмяТаблицы". Соответственно в контроле подформы не настоящая форма, а Datasheet - таблица вместо подформы. Ну и раз нет формы, то и нет событий на которых можно управлять ситуацией.
1
|
|
|
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
|
||
| 14.08.2015, 21:23 | ||
, и похоже лёгкие пути, не его жизненое кредо.
0
|
||
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 14.08.2015, 22:13 [ТС] | |
|
PuhKMV, Рад, что доставил вам удовольствие посмеяться, в наше время это дорогого стоит. Уж поверьте, если бы я мог сделать в моем случае именно ФОРМУ как объект-источник, то я бы сделал.
0
|
|
|
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
|
||
| 14.08.2015, 22:28 | ||
|
У вас же что за жизненный принцип или необоримая заковырка такая, лично мне она не понятна, вот и не понимаю. по чему нельзя сделать попроще, типа стандартными методами, а нужно именно прям в игольное ушко лезть, вместо того чтоб по наторенной ровной дороге идти. Допускаю конечно, что всяки - разные новаторские задумки возникают, (Сам такой), вот и пытаюсь вникнуть в суть. Девиз мой под чёрточкой то, вроде бы говорит сам за себя.
0
|
||
|
902 / 292 / 50
Регистрация: 02.12.2014
Сообщений: 1,229
|
|
| 14.08.2015, 22:44 [ТС] | |
|
Ну смотрите. Попробую описать ситуацию. Может по ходу этого описания и для себя что-то сформулирую, мало ли.
Есть БОЛЬШАЯ таблица с кучей полей (ну, допустим, гипотетически, штук так 50). Не будем сейчас обсуждать вопросы нормализации и т.д., т.к. в реале это не одна таблица, само собой, а несколько, но в итоге они как бы сводятся к одной большой. Есть форма, в которой перечислены ВСЕ эти поля. И галочки, чтобы пользователь мог отметить, какие из полей включить в итоговый отчет. То есть каждый раз это могут быть ДРУГИЕ поля, в этом как бы главная суть этой формы и этого итогового отчета. Так вот, пользователь отмечает птичками нужные поля, жмет кнопку "Сформировать". По этой кнопке запускается алгоритм, который циклом опрашивает все чекбоксы на форме, и если отмечен - добавляет это поле в постепенно формирующуюся инструкцию "SELECT... INTO", которая затем выполняется и создает в базе временную таблицу с нужными нам полями. И вот эта-то временная таблица и является объектом-источником подформы. Именно таблица, а не форма, поскольку я понятия не имею, какие именно поля должны будут отображаться. Ну и потом отображаем соответственно эту форму с таблицей. Вот такая логика. Как вариант, который я еще могу придумать - сделать огромную форму со ВСЕМИ полями, и потом делать их видимыми-невидимыми в зависимости от выбора чекбоксов, но по мне это еще больший изврат получается, оно того не стоит. Описанный выше вариант отнял у меня минимум кода, при том, что делает фактически все, что мне нужно. И единственная заковыка, которую он дает - это описанное выше сообщение о сохранении макета таблицы. Да и то только потому, что я использовал предложенную мне ранее mobile фишку по автоподгонке ширины столбцов таблицы.
0
|
|
|
9131 / 6141 / 593
Регистрация: 27.03.2013
Сообщений: 20,006
|
||
| 14.08.2015, 23:00 | ||
|
Если таблица, то я тут бессилен, т. к. считаю это не очень правильным. Допускаю конечно, что типа можно описать - Сотрудника в одной таблице, в 100 полях, типа - ФИО, Пол, Адрес, Образование, Работу, Семейное положение, телефоны, но это на мой взгляд потом скажется не сторицей и великой тратой времени. Ладно, у каждого своё логическое мышление и пусть каждый останется при своём мнении, основанном на жизненном опыте. Удачи!!!
0
|
||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 15.08.2015, 04:33 | |
|
Kkarn, Вы и сами знаете, что с формами гораздо проще и эффективней. И судя по сказанному выше, Вам необязательно создавать новые таблицы, достаточно запросов. Ведь в них можно сделать все то же самое (почти), что и в отдельных таблицах.
Вот с учетом всего этого предлагаю Вам вариант с формой, где можно выбрать из списка нужные поля из таблиц/запросов и поместить их в табличную подформу. А также создать запрос, который можно сделать источником отчета вместо таблицы. Поскольку работаем с формами, то никаких проблем с сохранением нет. На стартовой форме MakeForm выбираете нужную таблицу/запрос, в следующем списке поля и нажимаете кнопку Создать форму. Откроется форма Form1 с табличной подформой SubFrm и выбранными полями. А также сформируется запрос TempQuery на основе выбранных полей. Пример сделан на основе данных из учебной БД Борей. Применена функция автоматического выбора ширины поля по данным источника.
1
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 15.08.2015, 04:57 | ||||||
|
Добавлю. Форма MakeQuery может быть перенесена в любую БД практически без изменений. Ну разве что функцию подгонки ширины столбцов можно убрать, если не нужна. Чтобы ее удалить надо закомментировать строку в процедуре MakeForm в модуле формы MakeQuery
Также в БД должен присутствовать запрос TempQuery. Содержание запроса не имеет значения, его SQL-текст динамически формируется в коде. Ну и конечно надо исправить имя вызываемой формы с подформой SubFrm. В примере она называется Form1. Это делается также в процедуре MakeForm в команде вызова формы: Docmd.OpenForm "Form1". У контрола подформы должна быть подпись с именем lblSub. Значение подписи подформы заменяется на имя выбранной таблицы/запроса. Что, впрочем тоже можно закомментировать в MakeForm.
1
|
||||||
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
||
| 15.08.2015, 06:15 | ||
|
0
|
||
| 15.08.2015, 06:15 | |
|
Помогаю со студенческими работами здесь
16
Ошибка при сохранении изменений Ошибка при сохранении изменений в БД
При сохранении в файл формата xlsx выпадает сообщение о сохранении шаблона Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|