Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304

Открытие и переход по записям с условием

31.07.2018, 11:47. Показов 2554. Ответов 35
Метки нет (Все метки)

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

Есть форма фЗанятия, на ней две вкладки, различающие занятия по месту. Вкладка1 - Место1, Вкладка2 - Место2.

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

Нажимая кнопку "Ввод1" или "Ввод2", открывается форма фЗанятие для введения данных.

Необходимо чтобы:
1. При переходе по кнопке "Ввод1" из вкладки "Место1", в форме фЗанятие присваивалось "Место1" свободному полю, а соответственно при переходе по кн "Ввод2" из вкладки "Место2", в фЗанятие присваивалось "Место2".
Делаю это через OpenArgs. Но! как присвоить каждой вкладке "свое" соответствующее Место?

2. При переходе по кнопе "Ввод1" или "Ввод2" форма фЗанятие открывалась с пустыми полями для ввода новых данных (с уже присвоенным конкретным Местом)

3. Так как работа с фЗанятие будет осуществляться только через переход из Form1, то при переходе по записям в фЗанятие вперед, назад, к первой, последней и новой нужно, чтобы сохранялось "присвоенное" место, а в таблицу занятие добавлялся бы код соответствующего места. ( Здесь, я полагаю, нужно условие - если свободное поле=Место1, то код_Места=1, или как-то это по-другому можно сделать из кода при переходе в форму?).

Помогите, пожалуйста.
Вложения
Тип файла: rar DB.rar (37.0 Кб, 3 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.07.2018, 11:47
Ответы с готовыми решениями:

Переход по записям (изменение вида формы кликом - переход на определенную запись)
есть форма ленточная, хочу сделать чтобы при нажатии на инфу открывалась запись на которую нажали в режиме одиночная на конкретную запись

Формула с условием по дублированным записям
Добрый день! Просьба помогите подобрать формулу. необходимо пробегаться по столбцу с названием и искать дубликаты. Также паралельно...

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

35
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
31.07.2018, 11:57
Цитата Сообщение от Angie Посмотреть сообщение
Необходимо чтобы:
1. При переходе по кнопке "Ввод1" из вкладки "Место1", в форме фЗанятие присваивалось "Место1" свободному полю, а соответственно при переходе по кн "Ввод2" из вкладки "Место2", в фЗанятие присваивалось "Место2".
А если так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Private Sub Кнопка13_Click()
'DoCmd.OpenForm "фЗанятие", , , , , , Me.Место
    DoCmd.OpenForm "фЗанятие"
    Forms("фЗанятие")!Место = "Место1"
End Sub
 
Private Sub Кнопка16_Click()
'DoCmd.OpenForm "фЗанятие", , , , , , Me.Место
    DoCmd.OpenForm "фЗанятие"
    Forms("фЗанятие")!Место = "Место2"
End Sub
1
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
31.07.2018, 12:32  [ТС]
Eugene-LS, ну конечно же. А я зациклилась на OpenArgs. Спасибо
А с остальными пунктами не поможете?
Чтобы не было перезаписывания при открытии из формы Forms1, как открывать новую запись?..
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
31.07.2018, 12:43
Цитата Сообщение от Angie Посмотреть сообщение
как открывать новую запись?..
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Кнопка13_Click()
    Open_FormAddNew 1
End Sub
 
Private Sub Кнопка16_Click()
    Open_FormAddNew 2
End Sub
 
Private Sub Open_FormAddNew(i As Integer)
Dim s As String
    DoCmd.OpenForm "фЗанятие"
    s = "Место" & i
    Forms("фЗанятие").Recordset.AddNew
    Forms("фЗанятие")!Место = s
End Sub
Насчёт "Чтобы не было перезаписывая" - извините, не понял.
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
31.07.2018, 13:02  [ТС]
Eugene-LS, спасибо!

Цитата Сообщение от Eugene-LS Посмотреть сообщение
Насчёт "Чтобы не было перезаписывая" - извините, не понял.
я имела в виду, что если по кнопке открывается последняя запись, то поле "Место" перезаписывается нажатием кнопки (если открылась последняя запись, где было Место1, кнопкой "Ввод2", то соответственно присыаивалось в старую запись Место2)
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
31.07.2018, 13:05
Цитата Сообщение от Angie Посмотреть сообщение
что если по кнопке открывается последняя запись
По кнопке открывается сначала первая запись - потом переход на новую.
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
31.07.2018, 13:49  [ТС]
Eugene-LS, да, Вы правы.
Цитата Сообщение от Angie Посмотреть сообщение
3. Так как работа с фЗанятие будет осуществляться только через переход из Form1, то при переходе по записям в фЗанятие вперед, назад, к первой, последней и новой нужно, чтобы сохранялось "присвоенное" место, а в таблицу занятие добавлялся бы код соответствующего места. ( Здесь, я полагаю, нужно условие - если свободное поле=Место1, то код_Места=1, или как-то это по-другому можно сделать из кода при переходе в форму?).
с этим пунктом еще можете помочь, пожалуйста..?
0
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
31.07.2018, 14:10
Лучший ответ Сообщение было отмечено Angie как решение

Решение

Цитата Сообщение от Angie Посмотреть сообщение
с этим пунктом еще можете помочь
Ну... может так?
Вложения
Тип файла: zip DB_v02.zip (42.6 Кб, 9 просмотров)
1
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
31.07.2018, 15:38  [ТС]
Eugene-LS, вооот, супер, большое спасибо!!!!
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
09.08.2018, 15:01  [ТС]
Eugene-LS, спасайте

При переходе из фГлавная на форму фЗанятие (фГлавная - вкладка "Занятие" - вкладка"Место1" - кнопка Ввод1) появляется ошибка 3426 "Действие прервано связанным объектом" и выделяется строка VBA в коде фпГлавнаяЗ Forms("фЗанятие").Recordset.AddNew

Все работало нормально, потом вдруг стало появляться это..
Иногда удается, переписав код заново (удалив и написав то же, что и было), избавиться от этого, пока не появляется вновь. Не могу понять, с чем связано.

Что заметила: если открывать форму фЗанятие напрямую (не из фпГлавнаяЗ), сначала полю "Место" присваивалось "Место1" по умолчанию. На n-ю попытку при открытии формы фЗанятие поле оставалось пустым (и соотв-но при закрытии формы было сообщение о том, что "в таблице "Место" ядром базы данных не найдены записи с совпадающим ключевым полем "КодМестаЗ", сохранение невозможно и т.д.).

До появления ошибки несколько раз удаляла данные таблицы "занятие", после чего через форму заполняла ее вновь.

Что я сделала не так что могло произойти? Куда смотреть? Связано это с тем, что при наличии поля, которому присваивается значение через переход из другой формы, нельзя открывать напрямую? Что значит ошибка и как ее исправить..

Пожалуйста, помогите
Миниатюры
Открытие и переход по записям с условием   Открытие и переход по записям с условием  
Вложения
Тип файла: rar DB_v03.rar (36.6 Кб, 5 просмотров)
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
09.08.2018, 17:08
Angie, У вас в форме - фЗанятие на событии - Текущая запись - стоит какая то непонятная процедура.
Стоило ее убрать и обшибка исчезла.
Так же не понятно, почему у вас имеется поле из табл. Место, которое можно только смотреть и оно тут совсем не уместно, ибо в форме - Занятие, согласно схемы данных вы ДОЛЖНЫ ВВОДИТЬ - КодМестаЗ из таблицы - Место, а не смотреть на то, что не ввели.
Да и вааще, когда не получается, то кроме того что вы делали, лучше написать, что вы ХОТЕЛИ СДЕЛАТЬ, ибо это может делаться совсем не так.
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
09.08.2018, 17:43  [ТС]
VinniPuh, спасибо, что откликнулись!

Цитата Сообщение от VinniPuh Посмотреть сообщение
Стоило ее убрать и обшибка исчезла.
она мне нужна и сначала все работало, сейчас поясню.

Занятие может проходить в двух (пока что) местах. Идея следующая:
Человеку нужно ввести данные по занятию. Он заходит в фГлавная, выбирает там вкладку "Занятия". Далее выбирает вкладку того Места, к которому относится занятие, в примере это Место1 или Место2. Нажимает "Ввод" (для наглядности в примере "Ввод1" или "Ввод2" в зависимости от места).
Выбрав, предположим, "Место1" и нажав "Ввод1", он попадает в фЗанятие, где ему нужно ввести данные. Но поле Место уже получается введено за счет перехода из главной формы, этому полю уже присвоилось необходимое значение.

Цитата Сообщение от VinniPuh Посмотреть сообщение
Так же не понятно, почему у вас имеется поле из табл. Место, которое можно только смотреть и оно тут совсем не уместно, ибо в форме - Занятие, согласно схемы данных вы ДОЛЖНЫ ВВОДИТЬ - КодМестаЗ из таблицы - Место, а не смотреть на то, что не ввели.
То есть в таблицу Занятие запишется код выбранного места, а пользователь будет видеть выбранное заранее место для наглядности.
Для чего это сделано? Чтобы не дублировать формы и подформы под разные "Места", так как структуры совпадают, просто для разных мест могут различаться требования, какие поля надо вводить, какие нет (в примере это не реализовано).

Цитата Сообщение от VinniPuh Посмотреть сообщение
Да и вааще, когда не получается, то кроме того что вы делали, лучше написать, что вы ХОТЕЛИ СДЕЛАТЬ, ибо это может делаться совсем не так.
ну я для этого тему и создала, уважаемый Eugene-LS мне помог и все работало так, как мне нужно. Единственное, что я поменяла в его примере (пост 8, отмечено как решение), так это чтобы источником данных поля Место в форме Занятие было не ="Место" & [КодМестаЗ], а просто поле "Место", которое связано с таблицей Занятие ( в фЗанятие в источнике данных есть соответствующая связь). Но и после этой небольшой замены все работало.
Цитата Сообщение от VinniPuh Посмотреть сообщение
У вас в форме - фЗанятие на событии - Текущая запись - стоит какая то непонятная процедура.
она работала, ее не я придумала..

Добавлено через 6 минут
VinniPuh, Еще немного поменяла структуру, по сравнению с примером 8, но она не играет роли и относится к другим частям.
Проблема в том, что все работало и до и после..и потом раз..и все....
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
09.08.2018, 17:59
Ладно, ждите - Леонидыча, раз он уже вник в суть вопроса и по уши в теме.
Быстрее ошибку найдет.
1
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
09.08.2018, 18:02
Цитата Сообщение от Angie Посмотреть сообщение
При переходе из фГлавная на форму фЗанятие (фГлавная - вкладка "Занятие" - вкладка"Место1" - кнопка Ввод1) появляется ошибка 3426 "Действие прервано связанным объектом" и выделяется строка VBA в коде фпГлавнаяЗ Forms("фЗанятие").Recordset.AddNew
Подправил.
Вложения
Тип файла: zip DB_v04.zip (38.9 Кб, 9 просмотров)
1
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
09.08.2018, 18:27
Angie, попытался понять чего вы хотели ... и немного "допилил" + добавил комментарии к коду для понятности...
Вложения
Тип файла: zip DB_v05.zip (40.1 Кб, 8 просмотров)
1
Эксперт MS Access
 Аватар для Eugene-LS
13173 / 5872 / 1504
Регистрация: 05.10.2016
Сообщений: 16,489
09.08.2018, 19:10
Angie, и думается мне, вы, там у себя, немного перемудрили. Подумайте об этом пожалуйста.
Например смущает скрытность интерфейса - пользователь пред добавлением должен видеть уже существующие записи, и понимать когда редактировать уже имеющуюся или создавать новую.
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
09.08.2018, 22:02  [ТС]
Eugene-LS, спасибо!!!
правильно я понимаю, что главная ошибка - нельзя полю Место подставлять название самого места при данном методе?
Просто я хотела, чтобы пользователь видел не код места, а его название. Странно, но когда я использовала Ваш способ, но сделала эти изменения, у меня все работало до вчерашнего дня.
Цитата Сообщение от Eugene-LS Посмотреть сообщение
попытался понять чего вы хотели ... и немного "допилил" + добавил комментарии к коду для понятности...
почему-то этот пример не работает: нажимаю Ввод - открывается фЗанятие, но поле место - пустое. Начинаю вводить записи,появляется сообщение "невозможно добавление или изменение записи. Для обеспечения целостности данных необходимо наличие связанной записи в таблице "Место".
Закрываю форму. Пробую еще раз тот же путь через форму фГлавная. Сработало. Появилось "Место1", получается ввести данные и сохранить.
Закрываю все формы. Пробую снова. На третий раз появляется ошибка 2465 "Приложению не удается найти поле txtМесто, указанное в выражении, в коде подсвечивается строчка "Forms("фЗанятие")!txtМестo.Requery 'Перезапрос названия места по коду" и появляется потом каждый раз...
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Например смущает скрытность интерфейса - пользователь пред добавлением должен видеть уже существующие записи, и понимать когда редактировать уже имеющуюся или создавать новую.
ну тут я предполагаю, что пользователь вводит информацию после прошедшего занятия. Когда он это делает, ему не особо важны существующие записи, но если он хочет их посмотреть, он может перейти по кнопкам назад и посмотреть, что было. То есть в данном случае в обычном режиме ему надо всегда создавать новую запись.
Для редактирования я хотела создать отдельный запрос на изменение или удаление, или как это называется, еще не разбиралась.
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
09.08.2018, 22:28
Angie, по большому счету, не являясь специалистом, вы стараетесь усложнить свою задачу, не зная как это сделать, но почему то не выкладывая реальную БД, а пытаясь перенести в нее то что вам советують, не понимая, зачем и главное почему нужно сделать так, а не этак.
Тем более как мне чудится, ни кто так и не понял, для чего вы делаете БД, типа самого смысла, только отрывки, а не общую суть.
Сначала спрашивали по одной букве как
Теперь буквы с цыфрами, что одно и тоже, типа бессмыслица, ибо они ни чем кроме цифр не различаются и кроме вас ни кто не может понять, чем - Место1 отличается от - Место2, как и про снаряжение и другие справочники.
Соответственно схема может быть совсем не так, что вы сделали.
Соответственно без понимания сути проблемы, не будет и реальной помощи, ибо могут присоветовать так, а нужно по правильному сделать - Этак.
1
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
09.08.2018, 23:16  [ТС]
VinniPuh, Вы правы.
Не могу выложить полностью и с правильными названиями, потому что специализация очень-очень узкая, но довольно известная, а структуру нельзя раскрывать. Я просто не имею права, к сожалению.
Я стараюсь понимать и вдумываться в то, что мне предлагают. Да, остаются все равно куски, которые я не понимаю, но которые работают.
В данном случае в этой теме вопрос в том, почему перестало работать то, что работало, хотя изменений не было (кроме того, что я написала выше). Хотя, видимо, в этом и суть.
Названия - просто для этого часто и прикладываю схему данных, потому что, например, Место1 и место2 там текстовые поля, потому что названия мест могут быть любыми...ну и стараюсь максимально описывать ситуацию и применение...
0
 Аватар для VinniPuh
9131 / 6142 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
09.08.2018, 23:36
Angie, Я конечно знаю, слово - Секретность и даже слышал про - Конфеденциальность, но вас ни кто и не заставляет присать реальные данные, а только максимально приближенные к реальным.
Потом когда полностью сделаете работоспособную БД, тогда из всех таблиц удалите записи и начнёте вводить нужное.
Возможно кто то и понял уже саму суть задачи, но лично я только приблизительно, да и то не факт, что верно.
Но думаю из своих предположений, что нужно делать по другому и последовательно, исходя сначала из основной задачи, потом расширяя её и усложняя, что бы можно было как можно проще с ней работать, вводя данные, чуть ли не на автомате.
Но раз вы предпочитаете сделать БД не за месяц, а за 2-3 года, то как говорится - "Хозяин(ка) Барин".
Как обычно похоже - "Предчуйствие меня не обмануло".
Если не расскажите поподробнее, то лично я больше и пытаться помочь не буду.
Чем ни то другим себя займу, ибо уже головушка моя неугомонная шуметь начинает от неразрешимых загадок. ибо даже в обозримом будущем не виден конечный результат радений, соответственно и нефиг стараться, ибо душа не получит удовлетворения.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2018, 23:36
Помогаю со студенческими работами здесь

Переход к первой и последней записям
Здравствуйте. У меня есть таблица суммарного учета книг, в которой записываются данные как о поступивших книгах,так и о тех,которые...

Заполнение PopupMenu из БД и переход по записям
Здравствуйте, помогите пожалуйста, очень уж сложная задача,по крайней мере для меня. На форме есть 3 кнопки(bsPushButton) к каждой из...

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

Переход по записям главной формы
Приветствую Всех! Форум внимательно изучил, есть где-то рядом, но до конкретики не доходит. Проблема: Главная форма (одиночная),...

Картинки из в DBImage. Переход по записям
Вся программа в архиве! После запуска программы и нажатия на "Начать тест". Все вопросы считываются из БД. Проблема, в том, что при...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере 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
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru