Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не правильно отображаются данные - всю голову сломал.
 
 автор: Пауло   (13.11.2009 в 15:54)   личное сообщение
 
 

Здравствуйте!
Возникла производственная необходимость составить себе БД для автоматизации деятельности. Опыта мало, но делать базу надо, т. к. объём данных большой и его надо как-то обрабатывать.

В результате получилось следующее: http://slil.ru/28199820

Цель базы такова: вести оперативный учёт происшествий со следующей информацией: когда произошло событие, кто непосредственно участвовал, кто просто присутствовал в это время на работе и примечание. Отвечает за это форма "происшествия" и соответствующая таблица.
При этом т.к. народу много, хочется, что бы в форме "происшествия" была информация кроме ФИО персоны, ещё и его должность, ну и, возможно, другая информация.
Я, являясь полнейшим лохом в Accesse, решил сделать это подчинённой формой (т. к. по-другому вообще не вышло), но в эту форму упорно выводится ключевое поле таблицы "сотрудники", т.е. табельный номер, вместо его должности.

Я уверен, что ошибка дурацкая. Наверное, база неправильно спроектирована или запрос составлен идиотски. Но бьюсь второй день и последняя надежда только на вас, спецы. :)

  Ответить  
 
 автор: seluvan   (13.11.2009 в 16:14)   личное сообщение
 
 

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

  Ответить  
 
 автор: kot_k_k   (13.11.2009 в 16:31)   личное сообщение
 
 

1. Что делать если морд больше 4-х
Из таблы проишаствия на фиг всех морд. в отдельную таблу где из таблы Проишествия будет код проишествия, из таблы сотрудники будут виноватые морды - так и назвать "Mordi"
2. Желатедльно код поля в каждой табле (ID)
3. Исходя из 1-го в форму проишествие добавлем подчиненную форму на основании таблицы "Mordi".
4. Неправильное сопряжение основной и подчиненной формы у тебя получилось:
Подчиненные поля - ФИО;Подразделение;Должность
Основные поля - Основные фигуранты 1;Основные фигуранты 1;Основные фигуранты 1
т.е. поле ФИО=Основные фигуранты 1 - прокатило
Подразделение = Основные фигуранты 1 - не прокатило
Должность = Основные фигуранты 1 - опять лажа.

  Ответить  
 
 автор: kot_k_k   (13.11.2009 в 16:55)   личное сообщение
14 Кб.
 
 

Вот сваял пример как должно быть и механизм.

  Ответить  
 
 автор: Пауло   (13.11.2009 в 17:05)   личное сообщение
 
 

Спасибо, товарищи.
Кот, Вам - орден Дзержинского.

  Ответить  
 
 автор: kot_k_k   (13.11.2009 в 17:07)   личное сообщение
18 Кб.
 
 

Вот сделал более красиво и наглядно!!!! по двойному клику в форму Pro вводятся ФИО из Табеля - если много народу то ПролеСоСписком - не удобно. в конструкторе посмотри - поймешь че куда.

  Ответить  
 
 автор: Пауло   (17.11.2009 в 12:05)   личное сообщение
 
 

kot_k_k, спасибо!
Я вот всё пытаюсь понять, что значит в подчинённой форме "Mordy подчинённая форма" невидимое поле "FIO", у которого источник строк "SELECT Tabel.Kod_Tabel, FIO.FIO FROM FIO INNER JOIN Tabel ON FIO.Kod_FIO=Tabel.FIO; ",не смог понять, зачем это поле вообще.

И как удалить из "Mordy подчинённая форма" морду?
И если я хочу добавить информацию, по чьей рекомендации пришёл к нам гражданин работать и с кем он подружился - как мне лучше поступить?

  Ответить  
 
 автор: kot_k_k   (17.11.2009 в 13:24)   личное сообщение
21 Кб.
 
 


Не понимаю, как удалось сравнить FIO.Kod_FIO и Tabel.FIO, это же разные типы - счётчик и текст, и справка говорит, что



Посмотри в конструкторе на поле Tabel.FIO - это число оно содержит код из таблы FIO.Kod_FIO и у нему присоеденен столбец с ФИО (можно присобачить хоть 10, но поле Tabel.FIO будет содержать только Kod_FIO)
а невидимое для тго чтобы юзер руками по нему не лазил а использовал форму для ввода.
если наложить на него "Запретить изменения" то вызовет только вой со стороны тех же юзеров.


И как удалить из "Mordy подчинённая форма" морду?


Открой Проишествия - перейди в подчиненную и нажимай кнопку Delete в субформеформе.


И если я хочу добавить информацию, по чьей рекомендации пришёл к нам гражданин работать и с кем он подружился - как мне лучше поступить?



смотри пример - таблы!!!
в табле Recomend - FIO_Post - фио поступившего, FIO_Rec - фио давшего рекомендацию. может отсутствовать если Vid_rec вид рекомендации - агенство или сам зашел.
табла Lubi_Druzi аналогично, но т.к. она является по сути двухсторонней то записи дублировать не нужно - если написать что Вася (FIO_Post ) друг Пети (FIO_Rec) то писать Петя (FIO_Post ) друг Васи (FIO_Rec) не нужно - т.к. можно выбрать записи где
where FIO_Post ="Петя" OR FIO_Rec="Петя"

  Ответить  
 
 автор: Пауло   (17.11.2009 в 15:06)   личное сообщение
 
 

Разобрался. Ща буду формы пытаться наладить.

Что-то при даблклике на строках формы "Табель" вылазит ошибка - вбскрипт почему-то не видит форму PRO. Это с чем может быть связано?

  Ответить  
 
 автор: kot_k_k   (17.11.2009 в 15:28)   личное сообщение
22 Кб.
 
 

если форма Pro закрыта то абсолютно правильно, в обработке написано

Forms!Pro![Mordi подчиненная форма]!FIO = Me.Kod_Tabel
Forms!Pro![Mordi подчиненная форма]!FIO.Requery

т.к. делал на скору руку, для того чтобы не выяснять открыта ли нужная форма можно через глабальные переменные.
вот пример переделал. там форма Табельотокрывается в режиме диалога глабольная переменная получает номер чела и по закрытию заности его в нужную позицию.

  Ответить  
 
 автор: Пауло   (17.11.2009 в 16:45)   личное сообщение
 
 

Ну я понял.
Нда, я думал, Access гораздо проще. А сейчас понимаю, что вообще в нём не рублю. Какая-то адская жесть. Справка не рулит абсолютно.
Вот например хочу я построить форму, что бы была информация о челе из таблицы Tabel (фио и т. д.) и что бы были подчинённые формы, в которых было бы, где он светился (выборка из Pro), с кем дружит и кто его сюда привёл. С тем, что бы где он светился показало и кто привёл - просто. Там всё связано между собой и я худо-бедно сделал, что бы он по человеку показывал эту инфу. Но что бы дружбу-любовь показал - не могу ничо придумать. Пробовал отбирать, запросы делать, но в ответ только ругань.

  Ответить  
 
 автор: kot_k_k   (17.11.2009 в 17:01)   личное сообщение
44 Кб.
 
 

форма Табель1 - подчиненная к ней Lubi_Druzi

  Ответить  
 
 автор: kot_k_k   (18.11.2009 в 09:00)   личное сообщение
23 Кб.
 
 

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

  Ответить  
 
 автор: Дядя Федор   (18.11.2009 в 23:49)   личное сообщение
 
 

Господи, какая чушь

  Ответить  
 
 автор: kot_k_k   (19.11.2009 в 10:07)   личное сообщение
 
 

это не чушь ему хоть на чем-то показать надо, лучшего примера под рукой не было

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList