Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кнопка для ввода данных в подчиненную форму / 21 сообщений из 21, страница 1 из 1
27.12.2004, 19:29:33
    #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
27.12.2004, 21:48:16
    #32846879
NG
NG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
Однако, нет здесь подчиненной формы. А есть вполне самостоятельная форма с наложенным фильтром. Если не дает вводить данные, то скорее всего она построена на небновляемом источнике данных, например, на запросе, подводящем итоги. Запусти сам запрос и попробуй ввести данные в него.
...
Рейтинг: 0 / 0
28.12.2004, 12:59:48
    #32847568
Michello
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
NGОднако, нет здесь подчиненной формы. А есть вполне самостоятельная форма с наложенным фильтром. Если не дает вводить данные, то скорее всего она построена на небновляемом источнике данных, например, на запросе, подводящем итоги. Запусти сам запрос и попробуй ввести данные в него.
Коряво я как-то вопрос задал... попробую нормально объяснить:

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

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

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

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

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

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

Мдя...

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

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

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

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

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

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

PS: Но все равно странно, - если можно это реализовать через вкладки, почему через кнопки-то нельзя...
...
Рейтинг: 0 / 0
28.12.2004, 18:41:04
    #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
28.12.2004, 19:38:12
    #32848623
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
MichelloА подчиненные на вкладки можно сажать?
Можно, но не нужно. Все вместе будет очень тяжелым, будет занимать много памяти и работать медленно.

Есть другой вариант. Без вкладок, просто одна подчиненная форма, а кнопка меняет SourceObject и подсовывает другую подчиненную на то же место.
...
Рейтинг: 0 / 0
28.12.2004, 19:40:52
    #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
28.12.2004, 19:52:51
    #32848640
Michello
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
Владимир СанычЕсть другой вариант. Без вкладок, просто одна подчиненная форма, а кнопка меняет SourceObject и подсовывает другую подчиненную на то же место.Т.е. сделать обычную кнопку перехода на другую форму в подчиненной..... или.... получится, что в каждой подчиненной форме будут кнопки перехода на все остальные подчиненные. Правильно?
...
Рейтинг: 0 / 0
28.12.2004, 20:15:37
    #32848657
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
Michello Владимир СанычЕсть другой вариант. Без вкладок, просто одна подчиненная форма, а кнопка меняет SourceObject и подсовывает другую подчиненную на то же место.Т.е. сделать обычную кнопку перехода на другую форму в подчиненной..... или.... получится, что в каждой подчиненной форме будут кнопки перехода на все остальные подчиненные. Правильно?
Зачем? Кнопки пусть будут на главной.
...
Рейтинг: 0 / 0
28.12.2004, 20:31:40
    #32848664
Michello
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
Владимир СанычЗачем? Кнопки пусть будут на главной.А как программно это сделать (определить, что на нажатие кнопки в главной должна менятся подчиненная)?
...
Рейтинг: 0 / 0
28.12.2004, 21:22:06
    #32848686
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
me!sub1.sourceobject="frmForma"
...
Рейтинг: 0 / 0
29.12.2004, 11:14:42
    #32849164
Д.Проценко
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кнопка для ввода данных в подчиненную форму
Лови пример (Acc97 самораспаковывающийся архив Rar, можно переименовать расширение и запустить, за отсутствие вирусов ручаюсь)
...
Рейтинг: 0 / 0
29.12.2004, 11:46:03
    #32849243
Кнопка для ввода данных в подчиненную форму
Д.Проценко , слил твою базу.

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

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

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

Если формы называть "frmSub1", "frmSub2", "frmSubn".
Каждое значение переключателя будет соответсвовать названию формы с тем же числом на конце.
...
Рейтинг: 0 / 0
29.12.2004, 12:15:56
    #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
29.12.2004, 12:23:08
    #32849370
Кнопка для ввода данных в подчиненную форму
Теперь ясно почему нельзя было ввести данные. Из-за разных названий полей.

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

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


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