Добавление записей, запрос в поле таблицы, отчет и кое-что еще

olick_green
Дата: 23.12.2011 01:56:29
Раньше в Access приходилось создавать простенькие базы. Теперь задачи усложняются. Уточню: не программист, просто интересуюсь, а приходится заниматься, потому что другому за это деньги надо платить, а мы "негры" и за так сделаем.
1. Есть 2 таблицы. В одну заносятся данные, допустим ФИО, Профессия, КонтактнаяИнформация. И есть другая таблица, в которой содержатся только Профессии. Как сделать так, чтобы при добавлении в 1 таблицу нового сотрудника с новой профессией, эта профессия заносилась в таблицу профессий (понятное дело, что если там уже есть такая профессия, то дублировать ее нельзя).
2. Есть таблица. ФИО, Должность, Профессия, ЛичныйНомер. И есть еще 3 таблицы: ФИО, КодФИО; Должность, КодДолжности; Профессия, КодПрофессии. Необходимо автоматически создавать для каждого нового работника ЛичныйНомер, склеивая [КодФИО]&[КодДолжности]&[КодПрофессии] записывая все это сразу в таблицу в поле ЛичныйНомер при добавлении новой записи.
3. Есть запрос. Потом по этому запросу делается еще один запрос на добавление данных в таблицу. Потом по этой таблице создается отчет. Естественно в отчете (впрочем как и в таблице) вместо названий коды. Как от этого избавиться именно при таком раскладе?
Да и сразу хочу предвосхитить вопросы по поводу таблиц. В моей таблице поля называются совсем по-другому и смысл у них другой. Просто так проще и понятнее, как мне кажется.
Помогите, пожалуйста. Времени дали кот наплакал, все хотят "завтра", а еще лучше вчера, а профессионала привлекать -- жаба душит.
RodionAT_new
Дата: 23.12.2011 08:42:37
olick_green,
А что же Вам мешает использовать в качестве ЛичныйНомер значение КодФИО?
Sack
Дата: 23.12.2011 09:01:41
olick_green
1. Есть 2 таблицы. В одну заносятся данные, допустим ФИО, Профессия, КонтактнаяИнформация. И есть другая таблица, в которой содержатся только Профессии. Как сделать так, чтобы при добавлении в 1 таблицу нового сотрудника с новой профессией, эта профессия заносилась в таблицу профессий (понятное дело, что если там уже есть такая профессия, то дублировать ее нельзя).


Лучше разделить формы Добавления Сотрудника и Добавления Профессии. На форме выбора Сотрудника рядом с выпадающим списком Профессий поставить кнопку перехода к форме Добавления Профессии. Так Вам будет проще, да и принято так.

olick_green
3. Есть запрос. Потом по этому запросу делается еще один запрос на добавление данных в таблицу. Потом по этой таблице создается отчет. Естественно в отчете (впрочем как и в таблице) вместо названий коды. Как от этого избавиться именно при таком раскладе?

Сделайте запрос к этой таблице с выводом нужных полей, и уже по ней стройте отчет.
olick_green
Дата: 23.12.2011 10:40:52
RodionAT_new,

Личный номер должен состоять из определенного количества знаков. Каждая группа чисел в личном номере значимая. Например
QWERTYUIO
где QWE-три цифры кода ФИО, RTY-три цифры кода Профессии, UIO-три цифры кода Должности.
Поле код замечательно подходит по своей уникальности, но не подходит по количеству цифр, тк возвращает 1, а не 001, 15, а не 015 итд.
Вот если есть идеи как этого избежать, было бы здорово!
Программист-Любитель
Дата: 23.12.2011 10:48:41
ФИО должно быть только в одной таблице.
ПК во всех таблицах - автосчетчики. Все связи через них.
Личный номер - вычисляемое поле в запросе.
olick_green
Дата: 23.12.2011 10:50:38
Sack,

Идея по поводу отдельной формы конечно хорошая, спасибо. Только вот есть такой код (из книжки по SQL) на добавление данных в таблицу2 из таблицы1 которых в таблице2 еще нет:
INSERT INTO Проф ( Проф )
SELECT Проф
FROM ФИО
WHERE ФИО.Проф<>Проф.Проф
Но он почему-то не работает. Появляется окошко: "Введите значение параметра Проф.Проф". Может Вы знаете почему?
olick_green
Дата: 23.12.2011 10:52:20
Программист-Любитель,

Простите мне мою неосведомленность, может подскажете как составить такой запрос?
olick_green
Дата: 23.12.2011 10:56:23
olick_green
3. Есть запрос. Потом по этому запросу делается еще один запрос на добавление данных в таблицу. Потом по этой таблице создается отчет. Естественно в отчете (впрочем как и в таблице) вместо названий коды. Как от этого избавиться именно при таком раскладе?

Сделайте запрос к этой таблице с выводом нужных полей, и уже по ней стройте отчет.[/quot]

Пробовала, не получается. Запрос тоже возвращает коды, и отчет по запросу тоже.
Программист-Любитель
Дата: 23.12.2011 10:58:51
olick_green
Sack,

Идея по поводу отдельной формы конечно хорошая, спасибо. Только вот есть такой код (из книжки по SQL) на добавление данных в таблицу2 из таблицы1 которых в таблице2 еще нет:
INSERT INTO Проф ( Проф )
SELECT Проф
FROM ФИО
WHERE ФИО.Проф<>Проф.Проф
Но он почему-то не работает. Появляется окошко: "Введите значение параметра Проф.Проф". Может Вы знаете почему?

Посмотрите другой пример. NotInList Ф1

Не получается - Ф1
RodionAT_new
Дата: 23.12.2011 11:02:54
olick_green
RodionAT_new,

Личный номер должен состоять из определенного количества знаков. Каждая группа чисел в личном номере значимая. Например
QWERTYUIO
где QWE-три цифры кода ФИО, RTY-три цифры кода Профессии, UIO-три цифры кода Должности.
Поле код замечательно подходит по своей уникальности, но не подходит по количеству цифр, тк возвращает 1, а не 001, 15, а не 015 итд.
Вот если есть идеи как этого избежать, было бы здорово!

А вы сделайте их чере разделитель (хотябы точку или слэш)
1.2.4 = Иванов Иван Иванович . Электрик . Мастер бригады
А расшифровать все функциями в ВБА.
Легко и просто, как в бухучете.