9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
1 | |
Изменение цветом поля в подчиненной форме в зависимости от значения в форме18.06.2016, 14:38. Показов 4201. Ответов 53
Метки нет (Все метки)
Добрый день.
Есть такой вопрос. Есть БД, где в поле под Статусом печати выбирается номер List ID из подчиненной формы, выбирается статус печати (точечкой наверху), выбирается зона д/аудита (по умолчанию Балкон) и печатаются листы для аудита с проставлением галочки по факту печати в строчках. Идея такая: добавлено наверху поле № Трансп Заказа. Задумано введение значения из подчиненной формы - колонки № ТрЗкз. По факту ввода и нажатия клавиши Enter введенный номер транспортного заказа сверялся бы с номером из подчиненной табличной формы: - если совпадает - то в подчиненной табл форме поле с этим номером отмечается другим цветом - если не совпадает - то появляется ругательное сообщение (MSBX) Еще было бы здорово, если б курсор после ввода не уходил с этого поля))) Скажите, такое возможно?? Очень буду благодарен за помощь)))
0
|
18.06.2016, 14:38 | |
Ответы с готовыми решениями:
53
Запрет на создание записи в подчиненной форме при отсутствии значения в поле главной формы( или в этой же подчиненной форме) Аксесс 2003 Поиск записей в подчиненной форме по значению поля со списком в главной форме Автоматическое изменение поля со списком в подчиненной форме для новой строки Как задать в подчиненной форме значения второго столбца в зависимости от выбора в первом |
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
||||||
18.06.2016, 14:44 | 2 | |||||
возвращайте курсор куда хотите, это не запрещено. поле.SetFocus
Для сообщения, выделения идея такая:
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
||||||
18.06.2016, 21:30 [ТС] | 3 | |||||
В какое поле это мне надо прописывать??? Которое наверху в форме или которое в подчиненной форме??)))
Просто много слов "поле" и я запутался))) Добавлено через 3 часа 43 минуты
0
|
26817 / 14496 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
18.06.2016, 23:21 | 4 |
Не понял идею. Сначала копируете номер из подформы в свободное поле и тут же проверяете совпадает или нет? Ну именно в той записи откуда скопировано конечно совпадет, а в остальных нет. Или Вы о чем-то ином? О чем?
На всякий: цвет поля в табличной форме можно менять в условном форматировании.
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
19.06.2016, 00:00 [ТС] | 5 |
Идея в том, чтобы происходила проверка физически готового транспортного заказа с тем, что находится внутри List Id в базе данных)) извините, если непонятно.
Да и с фокусом так и не разобрался. Нужно, чтобы курсор постоянно находился в поле наверху. Происходит сканирование штрих-кода номера транспортного заказа (равносильно вводу и нажатию Enter) - внизу отмечается цветом #ТрЗкз, следующее сканирование - отмечается следующий цветом. Если трансп заказа нет внутри List id, появляется сообщение-ругалка. Ещё подумал: когда все трансп заказы в подформе уже отмечены цветом, появляется сообщение, что "ура, проверка завершена"))) Добавлено через 1 минуту Это теория, я не могу знать, возможно ли это))
0
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
||||||||||||||||
19.06.2016, 00:08 | 6 | |||||||||||||||
Я так понял, что вводится номер в поле и надо проверить есть ли совпадения с этим номером в подчинённой форме.
Ну, и проверить запросом. Если 0, то сообщение. Не дописал только в прошлый раз
в подчинённой форме создать скрытое(или не скрытое, по желанию) поле с id
Если нужно выделить постепенно все заказы, то предложенный метод не подходит.
1
|
26817 / 14496 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
19.06.2016, 02:03 | 7 |
Dimasterfrom4e, я предлагаю другой вариант. Условное форматирование на больших выборках дело медленное. Да и ненужное в данном случае. Вам ведь надо убедиться, что такой номер есть. Для этого достаточно например покрасить само поле Tz1 со штрихкодом. Вот такое я и сделал. Если сканированный номер есть в форме поле введенного штрихкода окрасится в зеленый, если нет - в красный. Без условного форматирования. Быстро и понятно. В ветке НЕ найдено в процедуре FindValue можно также задать звук. Тогда и мсгбокс наверное не нужен (?)
И еще я задал выполнение FindValue на двух событиях: После обновления (AfterUpdate) и на Изменении (Change). Обычно для работы со штрихкодом достаточно Change. Тогда, если подойдет, удалите или закомментируйте событие AfterUpdate для Tz1.
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
19.06.2016, 13:55 [ТС] | 8 |
Я в любом случае попробую))) спасибо)))
Добавлено через 5 минут Ваш вариант очень интересный, огромное спасибо вам, возможно подойдет))) Я не думал, что так возможно в access))) Но тут маленький вопрос/подвох: а как убедиться, все ли транспортные заказы собраны и отсканированны? На больших количествах все таки наверно нужна какая-то отметка в подформе, чтобы была уверенность, что List ID полносью исполнен, что все ТЗ внутри него подобраны, а человеческий глаз может и ошибиться))) И еще такой момент: после нажатия Enter курсор уходит из поля....(((
0
|
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
|
|||||||||||
19.06.2016, 16:51 | 9 | ||||||||||
Я так понял, что недостаточно просто узнать есть совпадения или нет. Нужно чтобы совпадения прошли по всем заказам? Добавлено через 9 минут Забыл добавить:
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
20.06.2016, 09:47 [ТС] | 10 |
Спасибо за код, правда не совсем понятно куда и на какое событие его вешать))) подскажете??
Добавлено через 1 минуту Спасибо за код. Правда не совсем понятно куда и на какое событие его вешать))) подскажете??
0
|
26817 / 14496 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
20.06.2016, 09:58 | 11 |
Единственная возможность это хранить отметку о сканировании в таблице. В какой Вам решать, но предположительно [Created TO]. Это может быть логическое поле, где True отсканировано, а False еще нет. При успешном сканировании ставить полю значение True.
В подформе FFReqCreatedTO сделать 2 сумовых поля, подсчитывающих количество True и False этого поля и Вы всегда будете знать текущую ситуацию
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
20.06.2016, 11:06 [ТС] | 12 |
Спасибо, я подумаю, как это получше организовать))) А с Enter как мне разобраться?? Сканирование в поле наверху равносильно вводу и нажатию Enter. Если ввести сейчас и нажать Enter, курсор уходит оттуда.(((
0
|
26817 / 14496 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
20.06.2016, 11:08 | 13 |
Не надо нажимать Enter. На событии Change (Изменение) форма поймает вставку значения из сканера штрихкодов и выполнит нужные действия. Этого достаточно. К тому же поле не потеряет фокус.
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
20.06.2016, 12:12 [ТС] | 14 |
Хорошо, спасибо. Я попробую и отпишусь)))
Нет, все таки уходит курсор из этого поля... Это уже на реальном сканере испытано...((( Добавлено через 23 минуты Еще вопрос, как сделать так, чтобы при сканировании читались бы первые 8 цифр штрих-кода? Например есть ТрЗкз 254607100001. Из него необходимы только первые 8 символов)))
0
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
20.06.2016, 12:58 [ТС] | 15 |
Все таки добавил в подформу поле Scanned. Прописывание True ведь можно посадить на событие, после нажатия Enter, правильно???
0
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
20.06.2016, 14:52 [ТС] | 16 |
Что-то не получается сделать событие, чтобы после сканирования в поле Scanned проставлялось True((((
0
|
26817 / 14496 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
20.06.2016, 21:16 | 17 |
Сообщение было отмечено Dimasterfrom4e как решение
Решение
Поле Scanned преобразованно в логическое. На главную форму FRecCreatedTO помещены поля с надписями Scan и NotScan. В первом количество сканированных для заданного набора данных, во втором количество еще не отсканированных. В связи с тем, что рекордсет формы необновляемый, изменить поле Scanned прямо в форме невозможно. Поэтому сделано так:
- в коде обновляется поле Scanned в таблице - на форму вставлена кнопка с надписью Обновить. Если нужно посмотреть сколько уже сканировано, нажать эту кнопку. Рекордсет формы мало того, что необновляемый, так еще и очень тяжелый, на нескольких запросах. И если обновлять форму при каждом сканировании, то это будет мучение. Сплошное ожидание. Если сканирование успешно, то после нажатия Обновить, поле [№ ТрЗкз] станет светло-зелееым (условное форматирование). Насчет перехода фокуса при сканировании. Видимо в Вашем сканере посылается Enter, поэтому фокус уходит с поля Tz1. Я сделал попытку, но испытать ее не могу, нет сканера. Идея в том, что на событии Change поля Tz1 переменной уровня модуля updateTz1 присваивается True. А на событии получения фокуса полем Scan (количество сканированных) анализируется эта переменная и если она True, то фокус возвращается на Tz1. Если будете как-то переделывать форму, то обратите внимание, чтобы по Enter фокус с Tz1 переходил на Scan. Или меняйте код.
1
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
||||||
21.06.2016, 00:32 [ТС] | 18 | |||||
Огромнейшее вам спасибо))) кажется это даже лучше, чем я задумывал))) Обновление формы решил перевесить на кнопку Print Aud. Логика такая - сперва сканирование, потом распечатка.
На эту кнопку также вначале повесил такой код на обновление и проверку, все ли отсканировано перед печатью:
0
|
9 / 8 / 0
Регистрация: 27.09.2015
Сообщений: 837
|
|
21.06.2016, 00:35 [ТС] | 19 |
На всякий случай и файл вложил))
0
|
26817 / 14496 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
21.06.2016, 01:19 | 20 | |||||
Вот так надо
1
|
21.06.2016, 01:19 | |
21.06.2016, 01:19 | |
Помогаю со студенческими работами здесь
20
Поиск в подчиненной форме, ввод значения для поиска из поля главной Цвет ячейки в форме в зависимости от значения поля Изменение таблицы в форме в зависимости от состояния поля со списком Access 2007 Изменить цвет строки в табличной форме в зависимости от значения 1 поля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |