powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кнопка для ввода данных в подчиненную форму
21 сообщений из 21, страница 1 из 1
Кнопка для ввода данных в подчиненную форму
    #32846809
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Будьте добры, подскажите!

Как организовать ввод данных в подчиненных формах при нажатии соответствующей кнопки в главной форме?

Я делаю обычную кнопку "открытие формы" мастером в главной форме. В мастере указываю опцию "Открыть форму для отобранных записей" и выбираю поля связи. В результате на кнопке висит такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Кнопка103_Click()
On Error GoTo Err_Кнопка103_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "Расходы"
    
    stLinkCriteria = "[Код Предприятия]=" & Me![Код Предприятия]
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка103_Click:
    Exit Sub

Err_Кнопка103_Click:
    MsgBox Err.Description
    Resume Exit_Кнопка103_Click
    
End Sub

Но это позволяет только смотреть уже введенные данные в подчиненных формах, а мне нужно еще одновременно и вводить данные в них!
А как включить эту возможность?
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32846879
NG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однако, нет здесь подчиненной формы. А есть вполне самостоятельная форма с наложенным фильтром. Если не дает вводить данные, то скорее всего она построена на небновляемом источнике данных, например, на запросе, подводящем итоги. Запусти сам запрос и попробуй ввести данные в него.
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32847568
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NGОднако, нет здесь подчиненной формы. А есть вполне самостоятельная форма с наложенным фильтром. Если не дает вводить данные, то скорее всего она построена на небновляемом источнике данных, например, на запросе, подводящем итоги. Запусти сам запрос и попробуй ввести данные в него.
Коряво я как-то вопрос задал... попробую нормально объяснить:

Есть две таблицы: одна - главная, другая - подчиненная (в смысле, связь у них "один-ко-многим"). Делаю форму на основе главной таблицы. А подчиненную форму (на основе подчиненной таблицы) я хочу сделать в виде кнопки в главной форме, чтоб подчиненная форма всплывала как небольшое окно и не загромождала окно главной формы. Т.е., например, я ввел запись в главной форме, затем нажимаю на кнопку, открывается подчиненная форма, в которой я ввожу записи, соответствующие данной записи в главной форме.

Вопрос: как мне сделать такую кнопку? Что в процедуре обработки события прописать?
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32847579
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PS. А запрос у меня самый обычный, на выборку. Все нормально в него вводится))
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32847763
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня терзают смутные сомненья..
(с) Василич

Если Access старше 97, то переведи главную форму в режим таблицы
и вложи в нее подчиненную

получишь открываемые плюсиками строчки подчиненной, очень удобно

Если младше - не жадничай и положи подчиненную форму на главную
Прямых способов связи между формами не существует
Кривой - хватать в глобальную переменную ID главной записи
а в форме подчиненной своей функцией defaultvalue забивать

но... ошибка - и сбросилась твоя глобпеременная...
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32847989
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexus12Меня терзают смутные сомненья..

Мдя...

Чего-то прямо не верится, что для такой разумной вещи не предусмотрено никакой процедуры. Что ж делать, когда подчиненных форм столько, что они на нескольких эранах не умещаются???

А по-кривому если... не напишите пример такой процедурки, а то я плохо плаваю пока? ))
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32847994
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно..
что ж за такой задач навороченный

а попробуйте-ка на вкладки разложить подчиненки
(TabControl)
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848087
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexus12странно..
что ж за такой задач навороченный

а попробуйте-ка на вкладки разложить подчиненки
(TabControl)
А подчиненные на вкладки можно сажать? У меня не получилось.
По-моему, на вкладки можно сажать только поля из той же формы...
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848369
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Michello Alexus12странно..
что ж за такой задач навороченный

а попробуйте-ка на вкладки разложить подчиненки
(TabControl)
А подчиненные на вкладки можно сажать? У меня не получилось.
По-моему, на вкладки можно сажать только поля из той же формы...
Хотя нет, получается!
В принципе, вкладки - та же кнопка, только размером, конечно, побольше... но все равно гораздо удобней, чем ничего ))

Спасибо, Alexus , за внимание и совет!!!

PS: Но все равно странно, - если можно это реализовать через вкладки, почему через кнопки-то нельзя...
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848580
Д.Проценко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MichelloPS: Но все равно странно, - если можно это реализовать через вкладки, почему через кнопки-то нельзя...

Почему же нельзя? Что-то типа того:

sub btn1_Click()
me![frmSubForm].SourceObject="Form1"
end sub

sub btn2_Click()
fldSubForm.SourceObject="Form2"
end sub

Если названия основных и подчиненных полей одинаковы, если разные еще надо поправить LinkChildFields и LinkMasterFields

Me![frmSubForm].LinkChildFields = "RefField1;RefField2"
Me![frmSubForm].LinkMasterFields = "ParentField1;ParentField2"

(чтоб миганий не было отключать - включать видимость)
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848623
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
MichelloА подчиненные на вкладки можно сажать?
Можно, но не нужно. Все вместе будет очень тяжелым, будет занимать много памяти и работать медленно.

Есть другой вариант. Без вкладок, просто одна подчиненная форма, а кнопка меняет SourceObject и подсовывает другую подчиненную на то же место.
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848628
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Д.ПроценкоПочему же нельзя? Что-то типа того:

Код: plaintext
1.
2.
3.
4.
5.
6.
sub btn1_Click()
  me![frmSubForm].SourceObject="Form1"
end sub

sub btn2_Click()
  fldSubForm.SourceObject="Form2"
end sub
Ух-ты! А я уже все перекинул на вкладки ))
Но понять, как делать такие кнопки, все равно хочется!

Вы не подскажите еще чуток, куда енто вставить в моей процедуре:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Кнопка103_Click()
On Error GoTo Err_Кнопка103_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "Расходы"
    
    stLinkCriteria = "[Код Предприятия]=" & Me![Код Предприятия]
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Кнопка103_Click:
    Exit Sub

Err_Кнопка103_Click:
    MsgBox Err.Description
    Resume Exit_Кнопка103_Click
    
End Sub
Спасибо!
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848640
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СанычЕсть другой вариант. Без вкладок, просто одна подчиненная форма, а кнопка меняет SourceObject и подсовывает другую подчиненную на то же место.Т.е. сделать обычную кнопку перехода на другую форму в подчиненной..... или.... получится, что в каждой подчиненной форме будут кнопки перехода на все остальные подчиненные. Правильно?
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848657
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Michello Владимир СанычЕсть другой вариант. Без вкладок, просто одна подчиненная форма, а кнопка меняет SourceObject и подсовывает другую подчиненную на то же место.Т.е. сделать обычную кнопку перехода на другую форму в подчиненной..... или.... получится, что в каждой подчиненной форме будут кнопки перехода на все остальные подчиненные. Правильно?
Зачем? Кнопки пусть будут на главной.
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848664
Michello
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СанычЗачем? Кнопки пусть будут на главной.А как программно это сделать (определить, что на нажатие кнопки в главной должна менятся подчиненная)?
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32848686
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
me!sub1.sourceobject="frmForma"
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32849164
Д.Проценко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лови пример (Acc97 самораспаковывающийся архив Rar, можно переименовать расширение и запустить, за отсутствие вирусов ручаюсь)
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32849243
Д.Проценко , слил твою базу.

Преобразвал в Access 2000.

При вводе данных в подчиненные формы - данные НЕ добавляются и появляется сообщение, что " Невозможно изменение элемента, присоединенного к полю "FieldSub1", "FieldSub2" .
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32849253
И код на обновление группы можно такой использовать:

Код: plaintext
1.
2.
3.
Private Sub org_AfterUpdate()
        Me.frmSubForm.SourceObject = "frmSub" & org
End Sub

Если формы называть "frmSub1", "frmSub2", "frmSubn".
Каждое значение переключателя будет соответсвовать названию формы с тем же числом на конце.
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32849342
Д.Проценко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Пользователь2

Ошибочка вышла - сначала сделал, а потом решил переименовать поля в таблицах для наглядности "FieldSub1_1", "FieldSub1_2", "FieldSub2_1" и "FieldSub2_1" для большей наглядности, а в формах не поправил, сорри.
Насчет Me.frmSubForm.SourceObject = "frmSub" & org согласен, но ведь это только пример (кстати, если форм больше 9 я сделал бы так:
Me.frmSubForm.SourceObject = "frmSub" & format(org,"00"), а формачки именовал бы frmSub01, frmSub02,..., frmSub10 ... (если больше 99, соответственно format(org,"000") :)
...
Рейтинг: 0 / 0
Кнопка для ввода данных в подчиненную форму
    #32849370
Теперь ясно почему нельзя было ввести данные. Из-за разных названий полей.

Код: plaintext
Me.frmSubForm.SourceObject = "frmSub" & format(org,"00")

Хорошее решение, для форм, количество которых > 9.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кнопка для ввода данных в подчиненную форму
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]