|
|
|
| Добрый день!
Я в Акцесе новичек. Но хочу научиться. Нахватался... проявил инициативу, а теперь сделать не могу. Надеюсь на Вашу помощь. ООООчень надо!
Срочно нужно создать базу данных по учету предприятий определенного направления. В таблицу должны вноситься предприятия у них в свою очередь могут быть филиалы при одном и том же владельце, но другим адресом и прочими данными. Вопрос: Как сделать так чтобы внесенный филиал привязывался к головному предприятию, но при этом мог фигурировать как отдельное (при необходимости). Как можно просматривать информацию по выбранному предприятию и прикрепленных к нему филиалов (как сделать привязку филиала к головному предприятию). Например: Есть Видео прокат у него по городу есть еще два, в сумме три.
1.Хочу посмотреть есть ли у этого проката филиалы и если да то (при необходимости) проверить информацию по конкретному из них или всех вместе.
2.Узнать филиалом какого предприятия я вляется выбранная запись.
3.Если появился новый филиал то внести его в базу с условием привязки к головному.
Вопрос по элементам управления:
1. Как сделать так чтобы при установке флажка открывалась определенная форма, а при снятии другая?
Что можете посоветовать и чем помочь по данным вопросам? | |
|
| |
|
|
|
| Поскольку предприятие и филиал суть есть одна сущность, вне зависимости от того головной он или нет, то хранить их нжно в одной таблице примерно такой структуры:
КодПредприятия
КодРодительскогоПредприятия
Название
....
Если предприятие являтся головным, то КодРодительскогоПредприятия = 0, если это филиал, то поле КодРодительскогоПредприятия должно содержать код родительского предприятия.
вопрос по формы
dim strForm as string
if me.Флажок = true then
strForm = "Форма1"
else
strForm = "Форма2"
end if
Docmd.openform strForm | |
|
| |
|
|
|
| Мне кажется, что предприятие может иметь несколько филиалов, поєтому филиалы нужно хранить в другой таблице со связями один ко многим. | |
|
| |
|
|
|
| >Мне кажется, что предприятие может иметь несколько филиалов
Конечно может, а филиал в свою очередь может иметь несколько своих филиалов. Все это очень хорошо укладывается в предложенную мной таблицу. | |
|
| |
|
|
|
| Да, я когда подумал, то понял, что так, как предлагаете вы, будет лучше | |
|
| |
|
|
|
| есть замечательная учебная база "БОРЕЙ" + хорошая книжка | |
|
| |
|
|
|
| >есть замечательная учебная база "БОРЕЙ" + хорошая книжка
tk--DIGO - ты "!борей!" занимался? | |
|
| |
|
|
|
|
| перед тем как сюда обратиться попробовал порабоать с базой "Борей", но безрезультатно. :(. Далее создал несколько таблиц общюю куда будут помещаться все данные владельца и его предприятия + еще несколько отдельных таблич для справочников и отдельную таблицу для филиалов, создал для них формы. Замысел такой: заношу данные в общую таблицу при необходимости в форме указываю что у предприятия есть филиал открывается форма для занесения филиала Данные владель высвечиваются у в открытой форме остается только заполнить адрес, название, и номер лицензии филиала(ов), записи само собой сохраняются. Но дальше я сбился с толку. Вот после этого я и пришел сюда.
Как теперь при запросе отчета понять к какому предприятию относится филиал, сколько их всего у нного субъкта, что из них головное предприятие, при этом данные во многом могут совпадать н-р: ФИО, название головного предприятия и даже филиалов разных владельцев(это уже проверено по существующей обыкновенной базе в экселе). Тут вопрос напрашивается по каким данным можно определить связь головного предприятия и его филиалов. В отчете неоходимо получать раграниченную информацию н-р Иванов предприятие такое то, филиалы такие и находятся там то далее Сидоров и все тоже самое и все это должно быть в одном отчете.
Мне со слов и примеров, Вашего личного опыта легче усваивать.
вопрос по формы
dim strForm as string
if me.Флажок = true then
strForm = "Форма1"
else
strForm = "Форма2"
end if
Docmd.openform strForm
Вот этого я понять не могу, если можно то растолкуйте что с этим делать.
Никого не прошу этого делать, хочу сам. НУЖНЫ ВАШИ ВСЯЧЕСКИЕ СОВЕТЫ ОСНОВАННЫЕ НА ЛИЧНОМ ОПЫТЕ, НУ ИЛИ ССЫЛКИ НА СТАТЬИ, ПОХОЖИЕ ПРИМЕРЫ. | |
|
| |
|
|
|
| заходите на сайт Hiprog.com
Примеров там около 150 мегов, не считая статей.
Вообще (без обид), если Вы не поняли что делать с кодом
dim strForm as string
if me.Флажок = true then
strForm = "Форма1"
else
strForm = "Форма2"
end if
Docmd.openform strForm
|
который является конкретным ответом на Ваш вопрос:
Как сделать так чтобы при установке флажка открывалась определенная форма, а при снятии другая?
Вам обязательно нужно что-то почитать по основам.
|
Как только я попаду за комп где есть хоть какой нибуть ACCESS, сделаю пример и положу сюда.
По первому вопросу:
Далее создал несколько таблиц общюю куда будут помещаться все данные владельца и его предприятия
Это в корне не верно.
Владелец в своей таблице, предприятие в своей
отдельную таблицу для филиалов,
Вы читали мой первый ответ?
Все предприятия должны быть в одной таблице
Как теперь при запросе отчета понять к какому предприятию относится филиал,
По полю КодРодительскогоПредприятия см. мой первый ответ
сколько их всего у нного субъкта,
Либо функцией Dcount (см Help) , либо запросом с группировкой по полую КодРодительскогоПредприятия
что из них головное предприятие
ТО у которого поле КодРодительскогоПредприятия равно 0
, при этом данные во многом могут совпадать н-р: ФИО, название головного предприятия и даже филиалов разных владельцев(это уже проверено по существующей обыкновенной базе в экселе). Тут вопрос напрашивается по каким данным можно определить связь головного предприятия и его филиалов.
Да пусть хоть все совпадет, код у каждого предприятия должут быт ьуникальным (поле счетчик)
В отчете неоходимо получать раграниченную информацию н-р Иванов предприятие такое то, филиалы такие и находятся там то далее Сидоров и все тоже самое и все это должно быть в одном отчете.
Не вижу проблемм. Это делается мастером отчета.
Вам явно не хватает знаний по нормализации (поиском по "нормализация, нормализованная форма" найдете в интернете множество статей на эту тему)
Например: http://www.nsc.ru/win/docs/db/rdbms/4-4.html | |
|
| |
|
10 Кб. |
|
| пример к вопросу о форме | |
|
| |
|
|
|
| спасибо за пример, но сдеь немного не так. Замысел в том что если галку ставишь то это обязывает заполнить форму филиалы и соответственно открывает ее, а если у этого субъекта закрылись все филиалы, а головное предприятие осталось, галка снимается и должен появиться диалог обязывающий удалить внесенные в базу филиалы принадлежащие этому предприятию. Как сделать запрос на удаление я уже продумал, а вот как с галкой разобраться не пойму. | |
|
| |
|
|
|
|
| Описывать как это сделать довольно долго и сложно.
почитайте про dlookUp или Dcount (для проверки наличия записей в таблице соответсвующих условию)
если Вы сделаете одну таблицу, то необходимость в такой реализации у вас отпадет | |
|
| |
|
|
|
| Вроде немного разобрался. Теперь появился вопрос по поводу подстановок. Суть вот в чем:
Есть две таблицы Сфера деятельности и Вид деятельности. Некоторые поля сферы деятельности делятся внутри таблицы вид деятельности например: Сфера деят. общепит имеет виды деят. кафе, ресторан, летняя площадка и тд.. Теперь при вводе новой записи нужно указать сферу деятельности и при вводе вида деятельности список для подстановки должен показывать только те значения которые являются расшифровкой конкретной сферы деятельности (для того чтобы не было ошибок ввода).
Кто нибудь может посоветовать каким образом это лучше сделать?
(Таблицы уже связаны между собой, таблица сферы деятельности имеет подтаблицу виды деятельности и каждая запись имеет свой набор данных.)
P.S.:Без этого никак потому что анализ может вестись как по видам деятельности так и по сферам деятельсти.
Спасибо! | |
|
| |