Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 53

Сохранение изменений в подчиненной форме

05.03.2019, 13:48. Показов 2741. Ответов 20

Студворк — интернет-сервис помощи студентам
Добрый день!

Есть форма документа "Поступление денег" с подчиненной формой.
При нажатии кнопки "Закрыть" запрашивается "сохранить-нет?", но изменения (или их отсутствие) отслеживаются только на основной форме. Хотелось бы распространить действие кода и на форму подчиненную.
Подскажите, пожалуйста, как её включить в обработку?

Спасибо.
Вложения
Тип файла: 7z TestDB03.7z (12.23 Мб, 3 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2019, 13:48
Ответы с готовыми решениями:

Сохранение данных, отображенных в подчиненной форме
Приветствие! Пожалуйста, помогите решить следующую проблему. В главную форму FrmMain вставлена подчиненная форма FrmPod с отобранными...

Обновление и сохранение данных в подчиненной форме
Здравствуйте! Появилась необходимость в доработке базы Телефоны сотрудников. Создал дополнительную таблицу Связи (с полями ФИО...

Запрет на создание записи в подчиненной форме при отсутствии значения в поле главной формы( или в этой же подчиненной форме) Аксесс 2003
Доброго времени суток ! Помогите , пожалуйста, решить проблему! шаг 1. В форме "frmТОиР_2" при вводе в "ПОЛЕ...

20
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
05.03.2019, 13:55
Цитата Сообщение от Vodovarov Посмотреть сообщение
Подскажите, пожалуйста, как её включить в обработку?
Никак! - (если я правильно вас понял).
Там уже автоматом записи сохранены, после перевода фокуса в главную форму.
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 53
05.03.2019, 14:03  [ТС]
Eugene-LS, так ведь кнопки закрытия и сохранения на главной форме... что же делать, если в друг не нужны в итоге изменения в подчиненной? какое-то половинчатое решение сейчас
0
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
05.03.2019, 14:07
Цитата Сообщение от Vodovarov Посмотреть сообщение
что же делать, если в друг не нужны в итоге изменения в подчиненной? какое-то половинчатое решение сейчас
Вообще, возможно ВСЁ!
Например :
Делайте копию "СоставЗаявкиОбщий" (по связке текущей записи)- и работайте с копией.
А при сохранении - транслируйте данные копии в рабочую таблицу ... но это "почёсывание левой ногой правого уха"
0
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 53
05.03.2019, 14:23  [ТС]
Цитата Сообщение от Eugene-LS Посмотреть сообщение
"почёсывание левой ногой правого уха"
уфф... а попроще вариант можт ? или подчиненная форма всегда живет своей, независимой от основной формы, жизнью?
0
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
05.03.2019, 15:00
Цитата Сообщение от Vodovarov Посмотреть сообщение
или подчиненная форма всегда живет своей, независимой от основной формы, жизнью?
Да, своей! Верно!
1
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
05.03.2019, 15:51
Vodovarov, по слухам подчинённая форма, Даже загружается первее основной.
А по существу, согласно описаниям талмудов и прочих папирусов от разработчиков -
Если вы перешли на Другую запись (не путать с другим полем), то запись автоматически сохраняется.
Такой уж программу создали, дабы данные не терялись из за забывчивости пользователей - Сохранить.
1
1 / 1 / 0
Регистрация: 08.11.2018
Сообщений: 53
05.03.2019, 17:01  [ТС]
Цитата Сообщение от VinniPuh Посмотреть сообщение
по слухам подчинённая форма, Даже загружается первее основной.

Цитата Сообщение от VinniPuh Посмотреть сообщение
Если вы перешли на Другую запись (не путать с другим полем), то запись автоматически сохраняется.
мда... век живи - век учись.
Ладно, буду с этим жить дальше. Спасибо!
0
 Аватар для VinniPuh
9127 / 6129 / 593
Регистрация: 27.03.2013
Сообщений: 19,972
05.03.2019, 17:18
Vodovarov, Быват - Сохранение путают с Обновлением, дабы например отобразилось изменение в запросе после ввода данныз, но это уже совсем другое, хоть по смыслу очень даже похоже.
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
06.03.2019, 09:25
Я обычно сохраняю текущую запись во временную таблицу при попадании фокуса на подчиненную форму, а в главной форме выставляю флаг, когда меняется подчиненная форма. При попытке выйти из главной формы спрашиваю о сохранении, если флаг выставлен. Если юзер отвечает "не сохранять", восстанавливаю измененные записи из резервной копии или ничего не делаю, если нужно оставить изменения. Есть, конечно, свои нюансы, но более-менее это работает
1
ᴁ ©
Эксперт MS Access
 Аватар для АЕ
4151 / 2442 / 506
Регистрация: 13.12.2016
Сообщений: 8,299
Записей в блоге: 5
06.03.2019, 15:30
Vodovarov, можно таблицу дополнить логическим полем тапа "Поступление_денег_подтверждено"
0
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 15
21.06.2019, 14:29
MrShin, Как вы это делаете? можете расписать более детально???
0
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
24.06.2019, 16:51
Цитата Сообщение от Bercut33 Посмотреть сообщение
можете расписать более детально???
Выковыривать пример из рабочих приложений довольно затратно по времени, пример не приведу. Я вроде бы достаточно подробно описал словами. Что именно не понятно, скажите поконкретнее.
0
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 15
25.06.2019, 14:23
Цитата Сообщение от MrShin Посмотреть сообщение
Выковыривать пример из рабочих приложений довольно затратно по времени, пример не приведу. Я вроде бы достаточно подробно описал словами. Что именно не понятно, скажите поконкретнее.
К, сожалению, всё. Вы рассуждаете с точки зрения опытного пользователя. А я только начинающий, и для меня не понятно, как что это и как его выставить, как восстановить из резервной копии, да как вообще сделать резервную таблицу.
0
Модератор
Эксперт MS Access
6231 / 2909 / 707
Регистрация: 12.06.2016
Сообщений: 7,839
25.06.2019, 14:39
Цитата Сообщение от Bercut33 Посмотреть сообщение
Вы рассуждаете с точки зрения опытного пользователя
Не пользователя, а разработчика, вообще-то.

Переходите и Вы в этот статус.
0
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
25.06.2019, 15:17
Цитата Сообщение от Bercut33 Посмотреть сообщение
да как вообще сделать резервную таблицу
Ну это не сложно.
Кликните здесь для просмотра всего текста
Visual Basic
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Private Sub CreateTempDb(Optional TempFileName As String = "TempDB.mdb")
'es - 28.09.2012
'--------------------------------------------------------------------
'Создает временную базу данных (MSA-2000-2003) в тек. папке приложения ,
' копирует туда эталонные таблицы  и подключает эти таблицы
'ПАРАМЕТРЫ ВЕРСИИ БД:
'    dbVersion20  - MSA-2
'    dbVersion30  - MSA-97 (compatible with version 3.5).
'    dbVersion40  - MSA-2000-2003
'    dbVersion120 - MSA-2007-2010
'--------------------------------------------------------------------
Dim TempDBPath As String
Dim db As DAO.Database
Dim strDBaseLink As String
 
On Error GoTo CreateTempDb_Err
'Получаем путь к создаваемой базе
    TempDBPath = CurrentProject.Path & "\" & TempFileName
 
'Сначала удаляем старую (If present)
    If Dir(TempDBPath) <> "" Then
        'On Error Resume Next
        Kill TempDBPath
        DoEvents
        Err.Clear
    End If
 
'Создаем базу версии MSA-2000-2003
    Set db = DBEngine.CreateDatabase(TempDBPath, dbLangCyrillic, dbVersion40)
    db.Close
    Set db = Nothing
 
' Создадим таблицу во временной базе путем копирования туда локальной таблицы - шаблона
    DoCmd.CopyObject TempDBPath, "tpTempItems", acTable, "atpTempItems"
    
' Присоединим созданную таблицу к текущей базе
    strDBaseLink = ";DATABASE=" & TempDBPath
    Call esConnectToTable(strDBaseLink, "tpTempItems")
 
    CurrentDb.TableDefs.Refresh  'Обновляем список таблиц тек. базы (не обязательно)
 
CreateTempDb_Bye:
    On Error Resume Next
    db.Close
    Set db = Nothing
    Exit Sub
 
CreateTempDb_Err:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in procedure CreateTempDb", vbCritical, "Error!"
    Resume CreateTempDb_Bye
    
End Sub
 
'--------------------------------------------------------------------
' Вспомогательная функция:
'--------------------------------------------------------------------
 
Public Function esConnectToTable(strBaseLink As String, srsName As String, _
                Optional newName As String = "", Optional makeHidden As Boolean = False) As Long
'es - 28.09.2012
'--------------------------------------------------------------------
'Подключение указанной таблицы по аргументам:
'   strBaseLink     = строка подключения вида: ";DATABASE=C:\DB.mdb"
'   srsName         = Исходное название таблицы в базе
'   makeHidden      = Сделать скрытой (по умолч. = нет)
'   newName         = Новое имя таблицы (по умолч. = srsName)
'При ошибке возвращает ее КОД
'--------------------------------------------------------------------
Dim db As DAO.Database
Dim tdf As DAO.TableDef
    
'Имя создаваемой таблицы
    If newName = "" Then newName = srsName
'Удаление старой (если есть)
    On Error Resume Next
    Set db = CurrentDb
    db.TableDefs.Delete newName
    Err.Clear
'Создание и подключение
On Error GoTo ConnectToTableErr
    Set tdf = db.CreateTableDef(newName)
    tdf.Connect = strBaseLink
    tdf.SourceTableName = srsName
    db.TableDefs.Append tdf
 
'Если указано что должна быть скрытая
    If makeHidden = True Then tdf.Attributes = dbHiddenObject
    
ConnectToTableBye:
    On Error Resume Next
    Set tdf = Nothing
    db.Close
    Set db = Nothing
    Err.Clear
    Exit Function
ConnectToTableErr:
    esConnectToTable = Err.Number
    Debug.Print Err.Description
    Resume ConnectToTableBye
End Function
0
0 / 0 / 0
Регистрация: 13.02.2019
Сообщений: 15
25.06.2019, 17:05
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Ну это не сложно.
Спасибо. буду вчитываться в код.
Как сделать флаг?
0
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
25.06.2019, 17:43
Лучший ответ Сообщение было отмечено alvk как решение

Решение

Цитата Сообщение от Bercut33 Посмотреть сообщение
Как сделать флаг?
Тряпочка + палочка + несколько гвоздиков
1
296 / 257 / 68
Регистрация: 18.06.2015
Сообщений: 570
26.06.2019, 17:29
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Ну это не сложно.
Да не нужен обычно подобный общий код. Временную таблицу проще сделать руками, просто скопировав рабочую таблицу в новую, в ней заменить автоинкрементное поле (если есть) на обычное цифровое и все. Дальше просто удаляем данные запросом, вставляем только требуемые для редактирования вторым запросом. Форма должна использовать временную таблицу, а не основную.
0
Эксперт MS Access
 Аватар для Eugene-LS
12066 / 5849 / 1494
Регистрация: 05.10.2016
Сообщений: 16,440
26.06.2019, 17:37
Цитата Сообщение от MrShin Посмотреть сообщение
Да не нужен обычно подобный общий код. Временную таблицу проще сделать руками, просто скопировав рабочую таблицу в новую, в ней заменить автоинкрементное поле (если есть) на обычное цифровое и все. Дальше просто удаляем данные запросом, вставляем только требуемые для редактирования вторым запросом. Форма должна использовать временную таблицу, а не основную.
И спорить даже не стану!
Показал сложный вариант, "во всей красе", но конечно же можно проще.
Тут каждый ухищряется в меру фантазии и познаний ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.06.2019, 17:37
Помогаю со студенческими работами здесь

Фильтрация данных в подчиненной форме через главную/в самой подчиненной
Доброго времени суток! Столкнулся с проблемой - нужно отфильтровать публикации по типу и дате в формах Сотрудники2 и Студенты1, в них...

Подсчет количества записей в подчиненной форме из другой подчиненной формы
Форумчане, всем привет. На форме 2 подчиненной формы. При переходе по одной отображаются данные другой. Сделал кнопку...

Сумма из подчиненной формы, отмена записей в подчиненной форме
Нужна сразу помощь по четырем пунктам, форма КвитанцияСкупкиОбмена надо: 1. Суммирование поля Сумма в подчиненной форме с занесением в...

Выборка в подчиненной форме 2 из формы 2 по выбранному значению в подчиненной форме 1 из формы 1
Добрый день! Есть 2 формы(на первой форме находится &quot;подчиненная форма 1&quot;, на второй &quot;подчиненная форма 2&quot;) В...

Откат изменений подчиненной формы
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой. Есть форма для добавления и редактирования записи с подчиненнойформой.Поля...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru