Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023

Перенос списка из формы в форму

31.10.2019, 11:41. Показов 1983. Ответов 17
Метки нет (Все метки)

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

Помогите, пожалуйста, решить следующую задачу:

На фирму приходит заказна установку нного количества оборудования;

- в базу вносится документ (форма Заказы, подч. форма документы - АКТ ф.47) в этом документе всё оборудование, которое должно быть поставлено на объекте;

- далее начинаются работы и создается заявка, но! сразу туда может попасть не все оборудование, поэтому для ввода списка оборудования в Ф47 создана отдельная форма и на ней флажки.

Вопрос: как сделать, чтобы из формы Оборудование перенести данные по оборудованию с флажками в новую форму, т.е. выделяем флажками нужное оборудование, выбираем тип документа, нажимаем кнопку "Новый" и открывается форма ОборудованиеДок с отмеченным оборудованием и типом.

Чтобы при создании новых документов не вводить каждый раз список оборудования.

Заранее спасибо!
Вложения
Тип файла: zip 1.zip (367.7 Кб, 0 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.10.2019, 11:41
Ответы с готовыми решениями:

Перенос данных из формы в форму
Всем здравствуйте! Подскажите пожалуйста, как в приложенном примере осуществить перенос данных из формы "Заказы" в форму...

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

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

17
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
31.10.2019, 11:58
Цитата Сообщение от Kiriver Посмотреть сообщение
как сделать, чтобы из формы Оборудование перенести данные по оборудованию с флажками в новую форму, т.е. выделяем флажками нужное оборудование, выбираем тип документа, нажимаем кнопку "Новый" и открывается форма ОборудованиеДок с отмеченным оборудованием и типом.
Чтобы при создании новых документов не вводить каждый раз список оборудования.
Сделать нужные поля формы оборудование дефолтными для формы ОборудованиеДок. На открытии ОборудованиеДок обходите нужные поля формы Оборудование и задаете значение как дефолтное для открываемой формы.

Пример на событии Загрузка (Load) формы ОборудованиеДок в предположении, что имена полей одинаковы в обоих формах.
Visual Basic
1
2
3
4
5
dim fld, i
fld=Array("ИмяПоля1", "ИмяПоля2", "ИмяПоля3", "ИмяПоля4")
for i=0 to ubound(fld)
   Me(fld(i)).DefaultValue = Forms!Оборудование(fld(i))
next
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 14:26  [ТС]
mobile, в данном случае, как я понимаю, переносятся все данные, а нужны только с галкой))
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
31.10.2019, 14:41
Цитата Сообщение от Kiriver Посмотреть сообщение
mobile, в данном случае, как я понимаю, переносятся все данные, а нужны только с галкой))
Т.е. нужно перенести несколько записей из формы Оборудование? Только помеченных галкой?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
dim fld, i
dim rst as dao.recordset
fld=Array("ИмяПоля1", "ИмяПоля2", "ИмяПоля3", "ИмяПоля4")
set rst=Forms!Оборудование.Form.Recordset
do until rst.eof
   if !ПолеСГалкой Then
       .addnew
       for i=0 to ubound(fld)
           Me(fld(i)) = Forms!Оборудование(fld(i))
       next
       .update
    end if
loop
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 14:56  [ТС]
mobile, да, только с формы ОборудованиеФ47

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Кнопка42_Click()
 
Dim fld, i
Dim rst As dao.Recordset
fld = Array("Код_оборудования")
Set rst = Forms!ОборудованиеФ47.Form.Recordset
Do Until rst.EOF
   If !ВДокумент Then   'вот тут ругается, на неправильную ссылку.
       .AddNew
       For i = 0 To UBound(fld)
           Me(fld(i)) = Forms!ОборудованиеДок(fld(i))
       Next
       .Update
    End If
Loop
 
End Sub
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
31.10.2019, 14:59
Поошибался. Исправляюсь
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dim fld, i
dim rst as dao.recordset
fld=Array("ИмяПоля1", "ИмяПоля2", "ИмяПоля3", "ИмяПоля4")
set rst=Forms!Оборудование.Form.Recordset
With Me.Recordset
do until rst.eof
   if rst!ПолеСГалкой Then
       .addnew
       for i=0 to ubound(fld)
           .fields(fld(i)) = rst.fields(fld(i))
       next
       .update
    end if
    rst.movenext
loop
end with
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 16:55  [ТС]
Ув, mobile!

все равно не работает(( Гляньте, если не трудно. Форма ОборудованиеФ47 на ней кнопка с вашим кодом. После нажатия этой кнопки выделенное оборудование должно перенестись в другю форму.
Вложения
Тип файла: zip 1.zip (429.2 Кб, 4 просмотров)
0
 Аватар для Aleator
102 / 87 / 17
Регистрация: 04.05.2011
Сообщений: 1,330
31.10.2019, 17:08
Папка пустая.
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 17:51  [ТС]
Вот.
Вложения
Тип файла: zip 1.zip (429.2 Кб, 1 просмотров)
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
31.10.2019, 18:04
Kiriver, в чем смысл копирования, ведь таблица-источник у форм одна и та же - ОборудованиеДок? Ничего и переносить не надо, просто сделайте фильтр по полю ВДокумент и все. Или источником формы сделайте запрос где в предложении Where будет записано
SQL
1
WHERE ВДокумент
В полном виде врзможный запрос-источник для формы ОборудованиеДок, где будут присутствовать только те записи, где в поле ВДокумент стоит галка (т.е. оно равно True)
SQL
1
SELECT * FROM ОборудованиеДок WHERE ВДокумент
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 18:22  [ТС]
mobile, Смысл копирования в создании нового документа, без забития всех позиций заново.
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
31.10.2019, 19:13
Цитата Сообщение от Kiriver Посмотреть сообщение
Смысл копирования в создании нового документа, без забития всех позиций заново.
Теперь ясно. Также совершенно ясно, что без номера документа Вашу задачу не решить. Ну откуда комп может знать, что в этой форме требуются именно такие записи, а не какие нибудь другие. Одними галками задачу не решить. Или надо будет отслеживать галки на предыдущих записях, чистить их. И все равно это менее надежно, чем сразу писать для нового документа его номер, который Вы задаете на форме ОборудованиеФ47. Или не задаете, а ПолеСоСписком45 всего лишь задает тип документа. Тогда надо организовать расчет номера документа, передавать его в форму Оборудование (вписывая в цикле по записям) и источник этой формы фильтровать по этому номеру документа.
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 19:36  [ТС]
mobile,

вот немного переделал. Форма Заказы, двойной щелчок по КодуДокумента и открывается форма ввода оборудования. На основании нее можно сделать мою задумку?
Вложения
Тип файла: zip 1.zip (431.2 Кб, 3 просмотров)
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
31.10.2019, 20:08
Теперь я вообще ничего не понимаю. Получается, что на основе "таблицы фактов" ОборудованиеДок формируется справочник Оборудование. Хотя, конечно же, должно быть наоборот. Разве что в специальных случаях, когда объектов очень много, дают возможность пополнять справочник из таблицы фактов.
Да и как пополнять справочник, ведь там другие поля, нежели в ОборудованиеДок.

Мне кажется, Вам надо заново продумать всю идеологию работы. В том числе интерфейс.
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
31.10.2019, 20:12  [ТС]
Цитата Сообщение от mobile Посмотреть сообщение
Получается, что на основе "таблицы фактов" ОборудованиеДок формируется справочник Оборудование.
почему? нет, сначала заполняется справочник Оборудование.Просто в таблице фактов ОборудованиеДок нужно только одно поле из справочника - ККSОборудования, остальное можно посмотреть по двойному клику и открытию справочника.

В ОборудованиеДок сходятся Люди и Оборудование)) чтобы потом было понятно кто делал его.
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
01.11.2019, 19:39  [ТС]
Ничего так и не получается у меня....

НЕ могу придумать логику переноса, в целом процесса.
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
02.11.2019, 16:04
Лучший ответ Сообщение было отмечено Capi как решение

Решение

Kiriver, если Вы хотите создавать новый документ, то, как следует из схемы данных, сначала надо заполнить строку в таблице ДокументыЗаказ (тип документа, код заказа, вид работ) и только потом создавать новый документ.
Может быть предполагается добавить строки в уже существующий документ? Но как тогда Вы представляете себе создание нового документа? Может быть я плохо смотрел, но, с учетом высказанного, не увидел как.
Для пополнения существующего документа такой код на кнопке Новый
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
Private Sub Кнопка37_Click()
    Dim nDoc, s
    Dim db As DAO.Database
    Set db = CurrentDb
    
    ' Найти максимальный номер документа и прибавить 1
'    nDoc = DMax("КодДокументы", "ДокументыЗаказ") + 1
 
    'записать в переменную существующий Номер документа
    nDoc = Me.КодДокументы
    
    'Записать в ОборудованиеДок записи, где ВДокумент=True
    s = "insert into ОборудованиеДок(Код_Оборудования, Код_документы) " _
    & " select Код_Оборудования, " & nDoc & " from ОборудованиеДок " _
    & " where ВДокумент"
    db.Execute s
    
    'Задать подформе источник для выисленного номера документа
    Me.ОборудованиедОК.Form.RecordSource = "select * from ОборудованиеДок where Код_документы=" & nDoc
    
    'Очистить чекбокс ВДокумент
    db.Execute "update ОборудованиеДок set ВДокумент=False"
 
'    Me.Код_Оборудования.RowSource = "SELECT Оборудование.КодОборудования, Оборудование.KKS FROM Оборудование " & _
'                                "WHERE Оборудование.KKS LIKE '' & Forms!заказы!Система & '*'"
End Sub
Если же требуется все-таки новый док, то как я уже писал, надо переосмыслить интерфейс. А может быть и структуру данных.
0
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
02.11.2019, 20:31  [ТС]
mobile, спасибо большое!

Адаптировал ваш вариант + еще помогли. На событии после обновления родительской формы сделал, без поля Вдокумент.
Форма ДокуметыЗаказ - поле Код_тип
Вложения
Тип файла: zip 2.zip (231.5 Кб, 5 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.11.2019, 20:31
Помогаю со студенческими работами здесь

Перенос записей из одного списка формы в другой
В форме нужно сделать 2 списка так, чтоб выбранный элемент одного из них можно было перенести в другой список, допустим, нажатием...

В MS Access создать форму в заголовке формы разместить два списка
В MS Access создать форму в заголовке формы разместить два списка, при выборе подразделения из первого списка заполнить второй должностями...

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

Перенос данных поля одной формы в поле другой формы
Здравствуйте. Помогите пожалуйста!!! У меня есть форма "Главная",где я выбираю "Код_ПЗ"(код принятой заявки) и при нажатии на...

Форму списка Заказов разбить на 4-ре списка по данным из регистра сведений (8.2, обычные формы)
Доброго времени суток, Форумчане! после решения данной задачи я сильно нагрузил систему, лагать стало не по детски. Хочу найти...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru