|
51 Кб. |
|
| Подскажите пожалуйста!
Есть таблица отпусков, в которой есть дата начала и окончания отпуска (см. файл прикреплённый).
Делаю запрос где календарь расписан по дням недели (через weekday) и присвоено что если выходной день то выводится буква"В", если будний, то выводится цифра 8.
НУЖНО: чтобы если даты в таблице отпусков совпадают с датами из запроса, то вместо 8 или В писалось О (отпуск).
через оператор between как-то это должно делаться, но я не пойму как... | |
|
| |
|
|
|
| таблицу о НЕ явке на работу (Tabla_not_Work) где поля fio, data_Start, data_end
update tabla_ЯВКА set [Отметка о явке] =О where Дата between data_Start and data_end and fio=rst.Tabla_not_Work
вот такая строка загонит в нужные даты букавку О, | |
|
| |
|
|
|
| судя по всему вычисления производить не собираются, поле текстовое и поэтому можно следать следующее
поле [Отметка о явке] переделать в полесосписком - его содержимое 4,6, 7, 8, В, О, Б, А и проч буковки нужные нам и цифири - такое же поле делаем в табле о не явке на работу (отпуска с-по, свой счет, болел и проч - назовем его Причина) - тогда одним запросом все 8-ки меняем на нужные нам буквы
update tabla_ЯВКА set [Отметка о явке] =rst.Причина where Дата between data_Start and data_end and fio=rst.Tabla_not_Work
п.с. лучше не иметь пробелов в названиях - гемор однозначно и использовать аглицкие буковки в названиях таблиц/полей /форм/запросов/отчетов | |
|
| |
|
|
|
| Кот_к_к
Спасибо огромное за помощь. Очень полезная информация для будущей логической мысли. Только вот у меня два вопроса, наверно ужасно глупых и всё же:
1. =rst - это что означает?
2. тут уже идёт код, (я обычно в конструкторе запроса работаю), его надо писать в режиме SQL?
P.S. справился немного по-другому, при помощи пары ограничений и запросов If. Результат порадовал, ибо далось не просто))) но очень хочу научиться пользоваться функцией between, ибо с её помощью должно было быть проще! | |
|
| |
|
|
|
| rst - это композиция типа
set dbs=Currentdb
set rst=dbs.openrecordset("таблица")
с такой таблой по любасу придешь к коду. | |
|
| |
|
|
|
|
| ух))) блин страшные слова какие. просто проблема в том, что я вообще не умею программировать. Работаю с access на уровне среднего пользователя, и ограничиваюсь только запросами с различными ограничениями и функциями типа if и некоторых других. в режим SQL залезаю очень редко, и то для того чтобы больше понять как это работает, а не что-либо там исправить. Но тем не менее пока знаний хватает для большинства не самых трудных проблем, тьфу тьфу тьфу))) | |
|
| |
|
|
|
| мыло напиши - сброшу одно извращение | |
|
| |
|
|
|
| ))) чтобы до конца убить меня непонятными словами)))
dodikxxx@yandex.ru | |
|
| |
|
|
|
|
| работа проделана хорошая. красиво и всё есть) залез в модуль и понял, что не дай Бог ))) надеюсь ограничиться будет достаточно тем что есть. хотя база классная, может и пригодится! Спасибо! | |
|
| |
|
|
|
|
| пришли на nowhere<гав>land.ru | |
|
| |
|
|
|
| отправил - кажись | |
|
| |
|
|
|
| в таблице календарь в поле "Рабочих_Часов" нужно писать количество рабочих часов
"В" это значит что должно быть указано 0 рабочих часов
(тип поля Числовой, значение по умолчанию 0, условие на значение Is Not Null And >=0 And <=24)
не следует хранить вперемешку разные типы данных | |
|
| |
|
|
|
| тада придется еще поле дописывать т.к. 0 - м.б. выходной, отпуск, свой счет, больнишный и пр. | |
|
| |
|
|
|
| выходные дни, они для всех выходные (кроме работающих в смену) а отпуск и больничный у каждого свой | |
|
| |
|
10 Кб. |
|
| dodikxxx
По ряду серьезных причин (быстродействие, расширяемость, легкость смены обозначений) следует использовать не символы, слова и т.д., а числовой идентификатор, ссылающийся на таблицу с описанием множества (в данном случае множество меток о присутствии на рабочем месте).
Поэтому надо создать отдельную таблицу, где будут прописаны варианты меток и соответствующие им числовые идентификаторы, и связать ее с таблицей календарь. См пример.
Даже если ты в программировании не очень, нужно потратить несколько часов на осознание этого основополагающего принципа. | |
|
| |
|
|
|
| >> а уникальный числовой идентификатор метки о присутствии
количество часов (отработанных) и будет меткой о присутствии.
в случае если количество отработанных часов =0 а в таблице "табель-календарь" в этот день указано иное значение (0 или 7 или 8, для обычного графика) то это эксепшен, который нужно обработать как "О" или "Б" и т.п. | |
|
| |
|
|
|
| То бишь каждый раз когда нужно просмотреть часы работы, нужно прогонять вычисление-сверку с таблицами отпусков, больничных, иначе как распознать что означает 0: отпуск или больничный? Почему не проще сразу обозначать соответствующим идентификатором? | |
|
| |
|
|
|
| в общем тут возможны разные подходы, конечно :) я спорить не стану
я к тому, что хранить в одном поле числовые значения и текстовые не кошерно и не верно и что-то тут не так. | |
|
| |
|
|
|
| всё зависит от конкретных условий - если фефочка раз в месяц тыкает пальчиком - эт одно дело, если все это привязано к турникету - софсем другой вариянт | |
|
| |
|
|
|
|
я к тому, что хранить в одном поле числовые значения и текстовые не кошерно и не верно и что-то тут не так.
|
да iif + val и сильно не напрягаемся | |
|
| |