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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как правильно создать базу данных?
 
 автор: DIGO   (22.02.2007 в 11:17)   личное сообщение
 
 

Добрый день!

Я в Акцесе новичек. Но хочу научиться. Нахватался... проявил инициативу, а теперь сделать не могу. Надеюсь на Вашу помощь. ООООчень надо!

Срочно нужно создать базу данных по учету предприятий определенного направления. В таблицу должны вноситься предприятия у них в свою очередь могут быть филиалы при одном и том же владельце, но другим адресом и прочими данными. Вопрос: Как сделать так чтобы внесенный филиал привязывался к головному предприятию, но при этом мог фигурировать как отдельное (при необходимости). Как можно просматривать информацию по выбранному предприятию и прикрепленных к нему филиалов (как сделать привязку филиала к головному предприятию). Например: Есть Видео прокат у него по городу есть еще два, в сумме три.

1.Хочу посмотреть есть ли у этого проката филиалы и если да то (при необходимости) проверить информацию по конкретному из них или всех вместе.
2.Узнать филиалом какого предприятия я вляется выбранная запись.
3.Если появился новый филиал то внести его в базу с условием привязки к головному.

Вопрос по элементам управления:

1. Как сделать так чтобы при установке флажка открывалась определенная форма, а при снятии другая?

Что можете посоветовать и чем помочь по данным вопросам?

  Ответить  
 
 автор: osmor   (22.02.2007 в 11:50)   личное сообщение
 
 

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

КодПредприятия
КодРодительскогоПредприятия
Название
....

Если предприятие являтся головным, то КодРодительскогоПредприятия = 0, если это филиал, то поле КодРодительскогоПредприятия должно содержать код родительского предприятия.

вопрос по формы
dim strForm as string
if me.Флажок = true then
strForm = "Форма1"
else
strForm = "Форма2"
end if
Docmd.openform strForm

  Ответить  
 
 автор: tk   (22.02.2007 в 13:31)   личное сообщение
 
 

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

  Ответить  
 
 автор: osmor   (22.02.2007 в 13:43)   личное сообщение
 
 

>Мне кажется, что предприятие может иметь несколько филиалов
Конечно может, а филиал в свою очередь может иметь несколько своих филиалов. Все это очень хорошо укладывается в предложенную мной таблицу.

  Ответить  
 
 автор: tk   (22.02.2007 в 13:53)   личное сообщение
 
 

Да, я когда подумал, то понял, что так, как предлагаете вы, будет лучше

  Ответить  
 
 автор: ДрЮня   (22.02.2007 в 12:22)   личное сообщение
 
 

есть замечательная учебная база "БОРЕЙ" + хорошая книжка

  Ответить  
 
 автор: час   (22.02.2007 в 15:36)   личное сообщение
 
 

>есть замечательная учебная база "БОРЕЙ" + хорошая книжка
tk--DIGO - ты "!борей!" занимался?

  Ответить  
 
 автор: tk   (22.02.2007 в 17:56)   личное сообщение
 
 

А ты зачем спрашиваешь?

  Ответить  
 
 автор: DIGO   (22.02.2007 в 20:38)   личное сообщение
 
 

перед тем как сюда обратиться попробовал порабоать с базой "Борей", но безрезультатно. :(. Далее создал несколько таблиц общюю куда будут помещаться все данные владельца и его предприятия + еще несколько отдельных таблич для справочников и отдельную таблицу для филиалов, создал для них формы. Замысел такой: заношу данные в общую таблицу при необходимости в форме указываю что у предприятия есть филиал открывается форма для занесения филиала Данные владель высвечиваются у в открытой форме остается только заполнить адрес, название, и номер лицензии филиала(ов), записи само собой сохраняются. Но дальше я сбился с толку. Вот после этого я и пришел сюда.

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

Мне со слов и примеров, Вашего личного опыта легче усваивать.

вопрос по формы
dim strForm as string
if me.Флажок = true then
strForm = "Форма1"
else
strForm = "Форма2"
end if
Docmd.openform strForm

Вот этого я понять не могу, если можно то растолкуйте что с этим делать.
Никого не прошу этого делать, хочу сам. НУЖНЫ ВАШИ ВСЯЧЕСКИЕ СОВЕТЫ ОСНОВАННЫЕ НА ЛИЧНОМ ОПЫТЕ, НУ ИЛИ ССЫЛКИ НА СТАТЬИ, ПОХОЖИЕ ПРИМЕРЫ.

  Ответить  
 
 автор: osmor   (22.02.2007 в 21:48)   личное сообщение
 
 

заходите на сайт 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

  Ответить  
 
 автор: osmor   (22.02.2007 в 22:54)   личное сообщение
10 Кб.
 
 

пример к вопросу о форме

  Ответить  
 
 автор: DIGO   (25.02.2007 в 18:26)   личное сообщение
 
 

спасибо за пример, но сдеь немного не так. Замысел в том что если галку ставишь то это обязывает заполнить форму филиалы и соответственно открывает ее, а если у этого субъекта закрылись все филиалы, а головное предприятие осталось, галка снимается и должен появиться диалог обязывающий удалить внесенные в базу филиалы принадлежащие этому предприятию. Как сделать запрос на удаление я уже продумал, а вот как с галкой разобраться не пойму.

  Ответить  
 
 автор: DIGO   (28.02.2007 в 13:47)   личное сообщение
 
 

не молчите плиз!!!

  Ответить  
 
 автор: osmor   (28.02.2007 в 14:28)   личное сообщение
 
 

Описывать как это сделать довольно долго и сложно.
почитайте про dlookUp или Dcount (для проверки наличия записей в таблице соответсвующих условию)
если Вы сделаете одну таблицу, то необходимость в такой реализации у вас отпадет

  Ответить  
 
 автор: DIGO   (03.03.2007 в 21:03)   личное сообщение
 
 

Вроде немного разобрался. Теперь появился вопрос по поводу подстановок. Суть вот в чем:

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

Кто нибудь может посоветовать каким образом это лучше сделать?

(Таблицы уже связаны между собой, таблица сферы деятельности имеет подтаблицу виды деятельности и каждая запись имеет свой набор данных.)

P.S.:Без этого никак потому что анализ может вестись как по видам деятельности так и по сферам деятельсти.

Спасибо!

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