powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Задание по MS Access, как делать?
16 сообщений из 16, страница 1 из 1
Задание по MS Access, как делать?
    #39570790
Задание по аксесу такое: "в таблицу «Сотрудники» добавьте новое поле «Стаж». Обеспечьте
при этом, чтобы значение в нем было бы не менее чем на 15 лет
меньше возраста сотрудника;"
Я не понимаю, что нужно сделать. Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570835
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно было заниматься в течении семестра.
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570859
двоешник,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xax_nv,

я, кстате, солидарен со студентом.
Задание вызывает, как минимум, недоумение :)

Т.е., "в первом приближении", можно было бы предположить, что задавший задание товарищ, хоть и "дурно воспитан", но вменяемый, и просит с ТС создать вычисляемое поле "Стаж"
Но фишка в том, что, как минимум в 2010-ом Акцессе, вычисляемое поле с функциями Date/Now сделать нельзя !

Соответственно, приходим к тому, что задание "невменяемое" и создавать нужно "настоящее" числовое поле для "Стаж"
Т.е., "учать детей плохому"


Ильгизар Нуриев ,

От тебя требуется создать новое целочисленное поле "Стаж", и добавить "условие на значение" для таблицы
(не для поля, а для таблицы ! это когда таблица в конструкторе, отображается в "Окне свойств")
что-то типа этого
Код: sql
1.
DateDiff("Y";[ДатаРождения];Date();2)>[Стаж]+15
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570861
ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ы
Гость
двоешник,Но фишка в том, что, как минимум в 2010-ом Акцессе, вычисляемое поле с функциями Date/Now сделать нельзя !

Соответственно, приходим к тому, что задание "невменяемое"Не вижу связи. Задание формализуется? Значит, оно имеет решение. И то, что у среды нет инструмента для решения в "один клик" вовсе не делает задачу бессмысленной или невыполнимой.

А по поводу собственно исходной темы: там наверху списка тем есть ссылкочка с надписью "РЕКОМЕНДАЦИИ", и в ней пара абзацев специально для студентов. В двух словах: к такой постановке вопроса не помешает прибавить сумму вознаграждения, авось помощники и найдутся. Задача простенькая, только вам с исполнителем придется обсудить, что вам давали, чтоб он не нагородил того, в чем сам преподаватель не разберется.
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570862
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
двоешник,приходим к тому, что задание "невменяемое" и создавать нужно "настоящее" числовое поле для "Стаж"Гм... а каким оно, по-твоему, должно быть - датой, что ли?
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570866
двоешник,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ыдвоешник,Но фишка в том, что, как минимум в 2010-ом Акцессе, вычисляемое поле с функциями Date/Now сделать нельзя !

Соответственно, приходим к тому, что задание "невменяемое"Не вижу связи. Задание формализуется? Значит, оно имеет решение. И то, что у среды нет инструмента для решения в "один клик" вовсе не делает задачу бессмысленной или невыполнимой.
Оно (задание) - избыточное. Поле "Стаж" ненужно. Достаточно ДатыРождения и ДатыПриёма + constraint
Только, подозреваю, это уже "за рамками" программы обучения :)

ыА по поводу собственно исходной темы: там наверху списка тем есть ссылкочка с надписью "РЕКОМЕНДАЦИИ", и в ней пара абзацев специально для студентов. В двух словах: к такой постановке вопроса не помешает прибавить сумму вознаграждения, авось помощники и найдутся. Задача простенькая, только вам с исполнителем придется обсудить, что вам давали, чтоб он не нагородил того, в чем сам преподаватель не разберется.Да какая там "постановка вопроса" :)
Не знает человек про ограничение на уровне таблицы, делов-то !
Может пару прогулял ту, а скорее - и не говорил никто.
Я сам узнал про эту фишку, году на третьем "плотного" занятия Акцессом :)
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570867
двоешник,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akinaдвоешник,приходим к тому, что задание "невменяемое" и создавать нужно "настоящее" числовое поле для "Стаж"Гм... а каким оно, по-твоему, должно быть - датой, что ли?Никакое не должно быть.
"Стаж" - это вычисляемое значение
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570868
ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ы
Гость
двоешник,...Есть многое на свете, друг Горацио... То, что вы в процессе "плотного занятия Акцессом" узнали (или краем уха услышали, на самом деле даже не важно) о нормализации вовсе не отменяет и обратного явления - денормализации. Особенно оправданной в случае как раз вычисления стажа. Это раз. Аналогично: то, что вы знакомы с ограничениями на уровне таблиц, вовсе не отменяет того факта, что сплошь и рядом проверки на эти ограничения выполняются задолго до того, как данные пойдут в БД. Это два. И наконец, не привыкайте с размаху рубить такие безапеляционные сентенции. Выглядит, откровенно говоря, смешно :)

А дело преподавателя, между прочим, усложнять задания постепенно, по мере прохождения материала. Вы же не будете объяснять детям, что три яблока на троих не делятся, потому что, де, их вообще-то надо продавать? Хотя, с вас еще и станется ))
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570870
двоешник,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ыдвоешник,...Есть многое на свете, друг Горацио... То, что вы в процессе "плотного занятия Акцессом" узнали (или краем уха услышали, на самом деле даже не важно) о нормализации вовсе не отменяет и обратного явления - денормализации.
ГЕО, я конечно извиняюсь (как там у Жванецкого : "возможно, вы даже культурнее нас - вы знаете ноты" ), но про какую "денормализацию" ты тут несёшь ?!
"Стаж" - он не просто зависит от даты приёма. Он, какбэ, очень сильно зависит ещё и от текущей даты ! Вот от того момента, когда мы решили поинтересоваться стажем, вот того, "заскорузлого субъекта" :)
Вчера - он (стаж) был один, а вот завтра он уже может быть совсем другой (раз меряем в годах).

Это совсем не "сумма" - которую получили умножением цены на количество, записали в "денормализованное" поле "сумма" и забыли навсегда.
Это несколько другое ...
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570873
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ильгизар НуриевЗадание по аксесу такое: "в таблицу «Сотрудники» добавьте новое поле «Стаж». Обеспечьте
при этом, чтобы значение в нем было бы не менее чем на 15 лет
меньше возраста сотрудника;"
Я не понимаю, что нужно сделать. Помогите, пожалуйста.
Извините, я не вникал в дискуссию. Может так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Option Compare Database
Public Function ogr()
Dim strTblName As String, strValidRule As String
Dim intX As Integer

strTblName = "Сотрудники"
strValidRule = "[Стаж] <= CInt(Year(Date())-Year([Дата рождения])-15)"
intX = SetTableValidation(strTblName, strValidRule)
End Function


Function SetTableValidation(strTblName As String, _
    strValidRule As String) _
    As Integer

    Dim dbs As Database, tdf As TableDef

    Set dbs = CurrentDb
    Set tdf = dbs.TableDefs(strTblName)
    tdf.ValidationRule = strValidRule
End Function


это поместить в общий модуль и в окне Immediate выполнить функцию ogr (естественно, предварительно создать числовое поле "Стаж" в таблице "Сотрудники")
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570876
ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ы
Гость
двоешник,ыпропущено...
Есть многое на свете, друг Горацио... То, что вы в процессе "плотного занятия Акцессом" узнали (или краем уха услышали, на самом деле даже не важно) о нормализации вовсе не отменяет и обратного явления - денормализации.
ГЕО, я конечно извиняюсь (как там у Жванецкого : "возможно, вы даже культурнее нас - вы знаете ноты" ), но про какую "денормализацию" ты тут несёшь ?!
"Стаж" - он не просто зависит от даты приёма. Он, какбэ, очень сильно зависит ещё и от текущей даты ! Вот от того момента, когда мы решили поинтересоваться стажем, вот того, "заскорузлого субъекта" :)
Вчера - он (стаж) был один, а вот завтра он уже может быть совсем другой (раз меряем в годах).

Это совсем не "сумма" - которую получили умножением цены на количество, записали в "денормализованное" поле "сумма" и забыли навсегда.
Это несколько другое ...Гео... Ну Гео, так Гео. И как Гео немедленно скажу! Это не просто "несколько другое". Мало того, Стаж, он, насколько я помню, зависит не от только и не столько от текущей даты, а еще и от количества бумажек (справок), которые были предоставлены человеку, который стаж считает. Северные, шмеверные, декретные и тому подобные. И я бы, например, этот стаж всё таки хранил. Наверное. Вернее, стаж на какую-то дату, от которой он уже на лету будет считаться. А может и нет. Но в любом случае, безапеляционно заявлять, что кто-то там "дурно воспитан", только потому, что я плохо владею предметом, я бы не стал. :)
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570879
двоешник,
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ыНо в любом случае, безапеляционно заявлять, что кто-то там "дурно воспитан", только потому, что я плохо владею предметом, я бы не стал. :)Нуу, "дурно воспитан" - я сказал в контексте "вычисляемого поля".
Наличие "денормализованного" поля стаж я назвал "невменяемым", даа ...
ыИ я бы, например, этот стаж всё таки хранил. Наверное. Вернее, стаж на какую-то дату, от которой он уже на лету будет считаться.
Уматовая оптимизация ! :)

Т.е. в моём случае, стаж будет считаться как - Date()-[ДатаПриёма]
а в твоём - [Какое-то сохранённое значение стажа, ещё и с обработкой ситуации когда человека приняли на работу после даты "Х"]+(Date()-[ДатаХ])

Класс ! :)

ыМало того, Стаж, он, насколько я помню, зависит не от только и не столько от текущей даты, а еще и от количества бумажек (справок), которые были предоставлены человеку, который стаж считает. Северные, шмеверные, декретные и тому подобные.Это когда в СОБЕС, "за пенсией" гражданин придёт, тогда его про все его "северные-шмеверные" будут спрашивать.
А девочке Маше, из отдела кадров, это всё ровно до жопы.
У неё есть "дата приёма" и "дата увольнения". Всё остальное её не касается.

Нуу и напоследок. Какого размера должен быть этот штат, что бы эта "денормализация" заимела хоть какой-нибудь смысл ?
Это ведь не 5-10-100 миллионов продаж/заказов/транзакций в магазине/банке, где будет использоваться денормализованная сумма, что бы не вычислять кво*цену.

Это штат предприятия. Вот сколько нужно что бы там было работников, что бы эта "оптимизация" принесла хоть копейку пользы ?
Знаю "градообразующее предприятие", где в лучшие времена работало аж 1200 чел.
С баней, буфетом, столовой, теплицей и садовниками - нуу может 1400 наберётся.

вот нужно для 1400 вычислений Дата2-Дата1 городить такой огород ? :)
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39570909
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_rusimportИльгизар НуриевЗадание по аксесу такое: "в таблицу «Сотрудники» добавьте новое поле «Стаж». Обеспечьте
при этом, чтобы значение в нем было бы не менее чем на 15 лет
меньше возраста сотрудника;"
Я не понимаю, что нужно сделать. Помогите, пожалуйста.
Извините, я не вникал в дискуссию. Может так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Option Compare Database
Public Function ogr()
Dim strTblName As String, strValidRule As String
Dim intX As Integer

strTblName = "Сотрудники"
strValidRule = "[Стаж] <= CInt(Year(Date())-Year([Дата рождения])-15)"
intX = SetTableValidation(strTblName, strValidRule)
End Function


Function SetTableValidation(strTblName As String, _
    strValidRule As String) _
    As Integer

    Dim dbs As Database, tdf As TableDef

    Set dbs = CurrentDb
    Set tdf = dbs.TableDefs(strTblName)
    tdf.ValidationRule = strValidRule
End Function


это поместить в общий модуль и в окне Immediate выполнить функцию ogr (естественно, предварительно создать числовое поле "Стаж" в таблице "Сотрудники")
fix (допущение, если важно число полных лет стажа)
Код: vbnet
1.
strValidRule = "[Стаж] <= CInt((Date()-CDate([Дата рождения]))\365-15)"
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39571042
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
двоешник,Оно (задание) - избыточное. Поле "Стаж" ненужно. Достаточно ДатыРождения и ДатыПриёма + constraintОткуда взяты сведения о существовании поля ДатаПриёма?
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39571075
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то дискуссия свернула не туда.
Вы полезли в епархию кадровиков. Вычисляемое поле... А если человек сменил место работы? Вывод: трудовой стаж не зависит от даты поступления на работу в текущую организацию.

У поля есть два параметра

- условие на значение
- сообщение об ошибке

может препод хотел чтоб "подопытный" их использовал?
...
Рейтинг: 0 / 0
Задание по MS Access, как делать?
    #39586455
Ильгизар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Препод сам не знал, как это сделать, поэтому разрешила пропустить задание:)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Задание по MS Access, как делать?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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