powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Составной Индекс в табеле учета рабочего времени?
32 сообщений из 32, показаны все 2 страниц
Составной Индекс в табеле учета рабочего времени?
    #39838314
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для сохранении табеля текущего месяца в единую таблицу "истории табелей" какой составной индекс создать?
Запись в табеле характеризуется:
1. Код сотрудника (уникален)
2. Код проекта (уникален для таблицы проектов, но сотрудник может участвовать в нескольких проектах,
проекты могут изменяться, добавляться, прерываться в середине месяца), кстати, проекта может вообще не быть (тогда я ему
присваиваю код сотрудника со знаком минус).
3. Месяц в году.
4. Год.

С удалением "ошибочно введеных сотрудников или контрактов" вроде бы ясно. Это удаление должна обеспечить схема данных.

А вот с добавлением записей (например, задним числом добавляется сотрудник со своим набором проектов),
опыта нет, правильно ли я понимаю предложенную индексацию? Или следует строить базу как-то по-другому.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838319
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор3. Месяц в году.
4. Год.

?
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838320
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортогда я ему присваиваю код сотрудника со знаком минус
тоже ??
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838342
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bubuchaавтор3. Месяц в году.
4. Год.

?
Так же поступаю (нарушаю нормализацию)
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838362
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIbubuchaпропущено...

?
Так же поступаю (нарушаю нормализацию)

да ради бога))))
можно услышать аргументы в пользу такого решения?...если не сложно
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838397
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bubucha,

Если можно, то кратко поясните некорректность и как разрешать проблему.

Ведь создав такой индекс, по-моему легко проверять есть ли такая запись в текущем месяце или прошлых.

А иначе как? Писать сложный условный оператор на проверку совпадения четырех полей? Или это делается легко доступными средствами? Какой путь правильный?
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838465
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,
Будьте так любезны, если можно, подробнее изложите "как делаете" и "что нарушаете"
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838474
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838533
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь СROI,
Будьте так любезны, если можно, подробнее изложите "как делаете" и "что нарушаете"
В основном использую такое (месяц, год,число и редко неделя)
Для календарей, расписаний, планирование ....
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39838791
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос ТСа касается структуры БД и таблиц в ней.Считаю что не видя БД и не зная какие задачи решаются ответить на вопрос ТСа навряд ли возможно.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39839954
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Сbubucha,
Если можно, то кратко поясните некорректность и как разрешать проблему.

да хз ...просто нарезка даты на составляющие, лично у меня, вызывает нехорошие мысли о не совсем продуманной постановке задачи, впрочем как иавтортогда я ему
присваиваю код сотрудника со знаком минус
Из описания я могу нафантазировать следующее: сотрудник в определенный период времени участвует (или не участвует) в том или ином проекте. Как мне видится, период его участия - это именно интервал С и ПО , а не просто месяц.
Как сотрудник попадает(выбывает) в проект? Наверняка есть некий документ, который этот факт фиксирует. Это я к тому, что я бы сохранял именно документы, а табель это уже как производная от этих документов...если конечно сам табель не является документом. Это только самая банальная фантазия, по факту у вас все может быть не так.
Т.е. по сути , как уже писала коллега:
sdkuВопрос ТСа касается структуры БД и таблиц в ней.

зы а чем вызвана необходимость отдельной таблицы истории?
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39839997
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bubucha ...просто нарезка даты на составляющие, лично у меня, вызывает нехорошие мысли...Весьма дипломатично, однако.
bubucha...Т.е. по сути , как уже писал а коллега:...
Так Вы женщина?(Гусарская баллада)
Я мужчина-думаю очепятка(может фото НЮ выложить в профиле?)
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39840171
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkububucha ...просто нарезка даты на составляющие, лично у меня, вызывает нехорошие мысли...Весьма дипломатично, однако.
bubucha...Т.е. по сути , как уже писал а коллега:...
Так Вы женщина?(Гусарская баллада)
Я мужчина-думаю очепятка(может фото НЮ выложить в профиле?)

Приношу благородному дону глубочайшие извинения за возникшее недоразумение.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841264
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI, Спасибо.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841267
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bubucha
зы а чем вызвана необходимость отдельной таблицы истории?

Нужно ведь куда-то сохранять табеля, чтобы потом подводить итоги за квартал, полугодие, год.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841282
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выкладываю усеченную базу.
Об индексе уже речи нет. Подробные комментарии в форме (в базе).
Уперся в сообщение: Run-time error '3072':
"Недопустимый аргумент функции"

Сообщение выходит при попытке выполнить запрос поиска записей в истории, соответствующих вновь прибывшему сотруднику или новому проекту в данном месяце (июль 2019). Вроде бы сравниваю только числовые поля (не текстовые) как рекомендует Help.

Если условие отбора не ставить (см. базу), то ошибка не выходит.
Проконсультируйте пожалуйста.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841287
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь С,
Да еще следует добавить, что подсчет записей в запросе выполняется функцией
Me.fld1 = Nz(DCount("*", "QPC_ProjectForContractorsALL_Select")) См. базу
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841330
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь С,
И еще: при инициализации глобальных переменных запрос "... _Select" в виде таблицы правильно показывает одну запись, которую нужно добавить.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841641
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuВопрос ТСа касается структуры БД и таблиц в ней.Считаю что не видя БД и не зная какие задачи решаются ответить на вопрос ТСа навряд ли возможно.

Базу выложил, если можно гляньте "одним глазом".
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841645
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bubuchaИз описания я могу нафантазировать следующее: сотрудник в определенный период времени участвует (или не участвует) в том или ином проекте. Как мне видится, период его участия - это именно интервал С и ПО , а не просто месяц.
Как сотрудник попадает(выбывает) в проект? Наверняка есть некий документ, который этот факт фиксирует. Это я к тому, что я бы сохранял именно документы, а табель это уже как производная от этих документов...если конечно сам табель не является документом. Это только самая банальная фантазия, по факту у вас все может быть не так.

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

А требуется почасовый учет трудозатрат.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841650
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь СБазу выложил, если можно гляньте "одним глазом".Не открывает-пишет нераспознаваемый формат
может сохраните до А-2007?
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841658
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuИгорь СБазу выложил, если можно гляньте "одним глазом".Не открывает-пишет нераспознаваемый формат
может сохраните до А-2007?
Так база выложена в формате accdb. Странслирована 2010-м.

Пробовал и в 97-м и 2003-м. Они просто на вычислении функции DCount("*" ... выгружаются.

Сейчас вычистил модули Global - оставил две функции f_nYear() и f_nMonth() и в модуле DateProcess оставил одну функцию.
Все то же самое.

Там у меня одно изобретение: в запросе QPC_ProjectForContractorsNo коду проекта (Cod_Proj: -[Account data]!COD) присваивается значение кода сотрудника с минусом (проекта нет, но желателен уникальный код). Вроде бы получается уникальное целое число..., но как оно может повлиять.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841662
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь СПробовал и в 97-м и 2003-м. Они просто на вычислении функции DCount("*" ... выгружаются.
Dcount работал на ура еще до 97
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841663
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще более упростил файл "базы". Убрал все лишние функции в модулях.
Быть может кто-нибудь поможет.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841664
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuDcount работал на ура еще до 97

Все когда-то работает, а иногда сбоит.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841697
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все то же самое-нераспознаваемый формат
(а у кого-нибудь открывается-может преобразуете)
Игорь СВсе когда-то работает, а иногда сбоит. 21927397
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841698
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuвсе то же самое-нераспознаваемый формат
(а у кого-нибудь открывается-может преобразуете)
21927397

Уважаемый sdku.
Я не понял. У меня используются только целые числа. Здесь нет неточных операций.
Поясните, если можно подробнее, что Вы имеете в виду.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841783
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь С,
Я имею ввиду:не грешите на стандартную функцию VBA-ищите ошибки в своих действиях
А что нельзя "состряпать" пример в *mdb?
Если есть желание и если окажется в тему попробуйте разобраться:
-форма [главная](единственный объект в БД с которым общается юзер,плюс формы для заполнения справочников: существующая и вновь созданные)
-В форме выводится число столбцов равное количеству дней в месяце на который составляется табель
-выводятся все работники которые трудятся в настоящий момент
-если табель уже создан выводится существующий,если нет создается новый
-имеются ограничения-создать табель ранее чем за (не помню сколько) месяцев не возможно
-создавал на скорую руку (кому-то что-то объяснял-возможны недостатки) но для демонстрации логики работы и ряда решений(которые могут быть значительно упрощены)сгодится
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841884
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Глубокоуважаемый sdku, спасибо, но,
- этот файл табеля мною уже полтора года как (03.01.18) скачан и просмотрен. Есть и другие табеля;
- я уже давно, никогда не грешу на стандартные функции (еще со времен Фортрана 77).

Ситуация такова, что уже для работающего табеля попросили сделать "небольшие" изменения и началось ...
Сейчас исправлю ситуацию и попытаюсь изложить все подробно, хотя причина не найдена. Возможно два складывающихся запроса, и результирующий 5-и "этажный" дают такой результат, пока не могу сказать.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39841983
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь С,
ну так выложите таблицы и поясните что надо сделать
(думаю так скачается-можете оставить некоторые другие объекты,вид которых важен,удалив источник данных-так будет понятней что Вы хотите)
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39842231
Игорь С
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый sdku,
Выкладываю результаты "исследования"
Проблема: Табель учета рабочего времени в месяце.
Записям в табеле соответствует сотрудники и проекты, по которым он работает (т.е. у одному сотруднику могут соответствовать несколько записей (проектов)), имеются также сотрудники "без проектов".

Задача: в таблицу табеля текущего месяца (который начал уже заполняться)
добавить запись вновь прибывшего сотрудника с назначенным ему проектом,
или назначить проект сотруднику,
или добавить сотруднику еще один проект (или не один),
или добавить сотрудника без проекта.

Т.е. имеется задача поиска отсутствия комбинации двух целочисленных параметров (кодов) в таблице.
Задача кода проекта для сотрудника без проекта решена путем присвоения коду его проекта кода этого сотрудника со знаком минус.

На форуме мне предложили подобное решение см. файл базы:
Код: sql
1.
2.
3.
4.
SELECT QA.COD, QA.Name, QA.Cod_Proj, QA.ProjName, QA.Priority_Proj AS PrP
FROM QA
WHERE (((Exists (SELECT * FROM QM_History_CodProj WHERE ((QM_History_CodProj.COD=QA.COD) AND  (QM_History_CodProj.Cod_project=QA.COD_Proj))))=False))
ORDER BY QA.Name;



Оно хотя и работало в режиме таблицы, но давало ошибку при подсчете записей в этом запросе с помощью DCount("*" ...
В результате был найден (подсказали) запрос с предложением INNER JOIN, а именно для данного случая:
Код: sql
1.
2.
3.
4.
SELECT QA.COD, QA.Name, QA.Cod_Proj, QA.ProjName, QA.Priority_Proj, *
FROM QA
WHERE (((QA.COD) Not In (SELECT QA.COD FROM QA INNER JOIN Q ON (QA.Cod_Proj = Q.COD_Project) 
AND (QA.COD = Q.COD) ))) OR (((QA.Cod_Proj) Not In (SELECT QA.Cod_Proj FROM QA INNER JOIN Q ON (QA.Cod_Proj = Q.COD_Project) )));



Также рассмотрены варианты (работающие быстрее) с предложением LEFT JOIN, работающие при условии сброса данных одного из запросов в промежуточную таблицу.
Файл базы с комментариями и функционалом прилагается.
Причина не работоспособности первого запроса не выяснена.
...
Рейтинг: 0 / 0
Составной Индекс в табеле учета рабочего времени?
    #39842311
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь С,
У меня А-2007 и даже в режиме ограниченной функциональности Ваш файл не открывается
Сбросьте в формате *.mdb только таблицы и форму (ы выходных документов)-что Вы хотите видеть как и с чем работать(без какого-либо кода)-не могу "вкурить" как должен выглядеть и какие данные отражать(и предназначен он для ввода или это делается в других формах(форме) . Если сделаете это помогу-иначе я пас
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Составной Индекс в табеле учета рабочего времени?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]