Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
1

Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?

28.01.2019, 00:03. Просмотров 1475. Ответов 13

Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице "Исполнители" для конкретного проекта?

Сейчас выбор исполнителей выполняется из формы "frm_02_00_Students_Tape" (источник данных "tbl_Students").

Предполагаю таблицу ""tbl_Students"" заменить запросом "req_Students_Not_CurProject".

Запрос "req_Students_Not_CurProject" не работает.

Как сделать чтобы запрос "req_Students_Not_CurProject" работал?
Или как правильно реализовать выше описанную логику?
0
Миниатюры
Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?  
Вложения
Тип файла: zip ProjectArtist.zip (50.1 Кб, 3 просмотров)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2019, 00:03
Ответы с готовыми решениями:

Как сделать, чтобы чтобы компьютер администратора отображался на вcех компьютерах сети?
на Сетевых компьютерах - чтобы компьютер администратора было во вcех компьютерах.

Как сделать чтобы отображался массив из объектов?
Вот сам код. public class ArrayTest { public static void main(String args) { Clinic1 clinic...

Как сделать, чтобы в TextBox не отображался курсор?
Добрый день. Как сделать так, чтобы в TextBox не отображался курсор?

Как сделать чтобы в MessageBox заголовок отображался полностью?
Поискал на эту тему но так и не решил данную проблему,на скрине можно увидеть,что текст сообщения...

Как сделать чтобы picturebox отображался над label
Шашки создаю динамически но они отображаются под tablelayoutpanel как сделать чтобы они были сверху?

13
alvk
Эксперт MS Access
5802 / 3686 / 202
Регистрация: 12.08.2011
Сообщений: 9,707
28.01.2019, 03:58 2
А что там вообще должно отображаться изначально? Ведь номер проекта у вас пустой и пока вы его не ввели. Не улавливаю вашей логики. Я бы делал проще: главная и подчинённая, в главной всё то же, а в подчинённой выбираем из списка студентов для этого проекта, тут уже список ограничиваем запросом, например where кодстудента not in(select кодстудента from студентыпроекты where кодпроекта = forms!вашаформа!кодпроекта)
1
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
28.01.2019, 08:55  [ТС] 3
Цитата Сообщение от alvk Посмотреть сообщение
Не улавливаю вашей логики.
Логика. См. скрин.
Дополню: один "Студент" может участвовать в нескольких проектах.

Цитата Сообщение от alvk Посмотреть сообщение
Я бы делал проще:
Извините, не смог разобраться как реализовать предложенное вами решение.
Не могли бы вы привести пример SQL запроса.
Или продемонстрировать своё предложение по логике БД.

Прилагаю файл "*.mdb".
0
Миниатюры
Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?   Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?   Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?  

Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?  
Вложения
Тип файла: zip ProjectArtist.zip (62.9 Кб, 3 просмотров)
alvk
Эксперт MS Access
5802 / 3686 / 202
Регистрация: 12.08.2011
Сообщений: 9,707
28.01.2019, 10:20 4
А сколько у вас студентов может быть в одном проекте? Может и не нужен огород с ограничением списка?
0
28.01.2019, 10:20
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
28.01.2019, 10:36  [ТС] 5
Цитата Сообщение от alvk Посмотреть сообщение
А сколько у вас студентов может быть в одном проекте? Может и не нужен огород с ограничением списка?
Использование системы таблиц "Студенты" и т.д. принято условно.

В одном "проекте" может быть неограниченное количество разных "студентов".
Думаю не более 90 тыс. записей, но это пиковая величина и вряд ли до этого дойдёт.
Может даже меньше 10 тыс. записей.
Точно не знаю... Смотря как дело пойдёт.

Студент "Студент_1" может использоваться в проект "Проект_1" только один раз.

1. Решение по данному вопросу зависит от кол-ва студентов?
Например:
10 - 1 000 - нужно применять "решение_1";
1 000 - 10 000 - нужно применять "решение_2";
10 000 - 100 000 - нужно применять "решение_3";
100 000 - 1 000 000 - нужно применять "решение_4";



Цитата Сообщение от alvk Посмотреть сообщение
Может и не нужен огород с ограничением списка?
Буду признателен если предложите своё решение.
Таблица - "Студенты"
Таблица - "Проекты"
2. Как назначать студентов на проекты, чтобы в исходном источнике из которого назначаются студенты на проекты отображались студенты, которые не имеют назначения на текущий проект?
0
alvk
Эксперт MS Access
5802 / 3686 / 202
Регистрация: 12.08.2011
Сообщений: 9,707
28.01.2019, 14:21 6
Смотрите форма f_project выбор такого же студента невозможен. Собственно у вас стоял индекс уже.
1
Вложения
Тип файла: zip ProjectArtist.zip (85.6 Кб, 3 просмотров)
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
28.01.2019, 18:28  [ТС] 7
alvk,
Моё решение позволяет в форме "frm_03_00_ProjectStudentsSelect":
- выбрать для проекта студентов по нескольким характеристикам;
- фильтровать список студентов;

Ваше решение позволяет выбрать студента только по имени.

Я понимаю, что там сейчас стоит "Email", "Телефон", а в боевых условиях там может быть "возраст", "адрес" и т.д.

1. Может можно ваше решение уточнить с учётом изложенных мной особенностей?
2. Ту логику, которую я предложил она неправильная и не практикуется?
Я человек неопытный, поэтому буду благодарен если поправите.

Добавлено через 56 минут
alvk,
Добавлю.
Ваше решение. Недостаток:
- когда выбираешь нового исполнителя на проект нужно думать добавлен он уже или нет.
Я понимаю, что если исполнитель выбран второй раз, то индекс его не пропустит, но хотелось бы об этом не думать...

Добавлено через 2 минуты
Всё таки в чём проблем с моим решением, частности с запросом "req_Students_Not_CurProject":
SQL
1
2
3
4
5
SELECT tbl_Students.*
    FROM tbl_Students INNER JOIN req_ProjectStudents_Students 
        ON (tbl_Students.id_Student = req_ProjectStudents_Students.tbl_ProjectStudents.id_Student) 
        AND (tbl_Students.id_Student = req_ProjectStudents_Students.tbl_Students.id_Student)
        WHERE (((req_ProjectStudents_Students.tbl_Students.id_Student) IS NULL));
почему он пустой?
0
Capi
Модератор
Эксперт MS Access
2021 / 1104 / 254
Регистрация: 12.06.2016
Сообщений: 2,632
28.01.2019, 18:56 8
Лучший ответ Сообщение было отмечено Soft17 как решение

Решение

Цитата Сообщение от Soft17 Посмотреть сообщение
Всё таки в чём проблем с моим решением, частности с запросом "req_Students_Not_CurProject"
SQL
1
2
3
4
5
SELECT tbl_Students.*
    FROM tbl_Students INNER JOIN req_ProjectStudents_Students 
        ON (tbl_Students.id_Student = req_ProjectStudents_Students.tbl_ProjectStudents.id_Student) 
        AND (tbl_Students.id_Student = req_ProjectStudents_Students.tbl_Students.id_Student)
        WHERE (((req_ProjectStudents_Students.tbl_Students.id_Student) IS NULL));
почему он пустой?
Думаю, потому, что нужно использовать не INNER JOIN, а LEFT JOIN.
1
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
28.01.2019, 19:22  [ТС] 9
Цитата Сообщение от Capi Посмотреть сообщение
Думаю, потому, что нужно использовать не INNER JOIN, а LEFT JOIN.
))) Только я занёс руки на клавиатурой, чтобы обратиться к вам в личку за помощью... а тут вы ответили...

Работает почти как надо....
Только теперь запрос "req_Students_Not_CurProject" отображает всех студентов, которые "не используются ни в одном проекте".

Как сделать чтобы в запросе отображались студенты, которые "не задействованы в текущем проекте"?
"Текущий проект" - см. скрин.
0
Миниатюры
Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?  
Вложения
Тип файла: zip ProjectArtist_8_Capi.zip (77.2 Кб, 0 просмотров)
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
28.01.2019, 19:41  [ТС] 10
Capi,
Кажись понял...
Запутался
Не то подставил...
Сделал так
SQL
1
2
3
4
5
SELECT tbl_Students.*
    FROM tbl_Students LEFT JOIN req_ProjectStudents_CurProject 
        ON (tbl_Students.id_Student = req_ProjectStudents_CurProject.tbl_ProjectStudents.id_Student) 
        AND (tbl_Students.id_Student = req_ProjectStudents_CurProject.tbl_Students.id_Student)
        WHERE (((req_ProjectStudents_CurProject.tbl_Students.id_Student) IS NULL));
Вроде работает
0
Capi
Модератор
Эксперт MS Access
2021 / 1104 / 254
Регистрация: 12.06.2016
Сообщений: 2,632
28.01.2019, 19:52 11
Soft17,

Я базу ведь Вашу базу все равно посмотреть не смогу. У меня не откроется.
Вчера ее AE преобразовывал, когда разбирались с запросом.
0
Soft17
1 / 1 / 1
Регистрация: 15.01.2017
Сообщений: 379
28.01.2019, 20:14  [ТС] 12
Цитата Сообщение от Capi Посмотреть сообщение
Я базу ведь Вашу базу все равно посмотреть не смогу
Всё работает.
Ещё раз спасибо.

Вы имеете ввиду, что необходима база в формате "*.mdb"?
Если да, прилагаю.


Проблема.
При открытии формы "frm_03_00_ProjectStudentsSelect" вложенные формы запросов:
- "req_ProjectStudents_CurProject" - пустой;
- "req_Students_Not_CurProject" - имеет неправильные значения.
После обновления вручную (через "F2") каждой формы запроса все отображается нормально.

Моё решение.
Visual Basic
1
2
3
4
Private Sub Form_Load()
        req_ProjectStudents_CurProject.Requery
        req_Students_Not_CurProject.Requery
End Sub
Не помогает.
Приходится обновлять кнопкой.
Visual Basic
1
2
3
4
Private Sub btn_updated_Click()
        req_ProjectStudents_CurProject.Requery
        req_Students_Not_CurProject.Requery
End Sub
Вопрос.
Как сделать, чтобы при открытии "frm_03_00_ProjectStudentsSelect" запросы
- "req_ProjectStudents_CurProject";
- "req_Students_Not_CurProject" ;
имели актуальные значения?
0
Вложения
Тип файла: zip 8_Capi_ProjectArtist.zip (59.4 Кб, 0 просмотров)
Capi
Модератор
Эксперт MS Access
2021 / 1104 / 254
Регистрация: 12.06.2016
Сообщений: 2,632
28.01.2019, 20:25 13
Soft17,

Хорошо. Смогу посмотреть примерно через час.
1
alvk
Эксперт MS Access
5802 / 3686 / 202
Регистрация: 12.08.2011
Сообщений: 9,707
29.01.2019, 02:49 14
Цитата Сообщение от Soft17 Посмотреть сообщение
Ваше решение позволяет выбрать студента только по имени.
Это не решение всех ваших задумок. Это основа реализации. Вы постоянно меняете задачи.
Изначально вы что писали?
Цитата Сообщение от Soft17 Посмотреть сообщение
Как сделать чтобы после назначения исполнителя на проект, исполнитель больше не отображался в таблице исполнителей?
Это я вам показал.
При чём тут отбор по различным показателям?
"Тётенька, дайте водички попить, а то так проголодался, что переночевать негде"
0
29.01.2019, 02:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2019, 02:49

Как сделать, чтобы Трекбар отображался справа на Статусбаре?
Доброго времени суток. На статус бар добавляю трекбар. По умолчанию статус бар отображает все...

Как сделать, чтобы отображался шлюз и IP в построенной сети ?
Здравствуйте!!!! Скачал Cisco Packet Tracer, пробую разбираться. Подскажите как сделать, чтобы...

Как сделать чтобы лист Excel отображался на форме
как сделать чтобы таблица Excel отображалась на форме и в ней можно было изменять значения, которые...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru