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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Проектирование БД (замена тригерам)
 
 автор: ShadowOfSun   (12.08.2009 в 13:52)   личное сообщение
20 Кб.
 
 

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

  Ответить  
 
 автор: osmor   (12.08.2009 в 16:37)   личное сообщение
 
 

Нужно разъяснение.
Это вы про то что в таблице tblAdresses есть запись, но для нее нет записей в btlBase? (например A0202) ?

  Ответить  
 
 автор: ShadowOfSun   (12.08.2009 в 16:41)   личное сообщение
 
 

Нет
я про таблицы, соответствующие каждой операции
в tblOperation они прописаны (чуть-чуть)
как их корректно связать с tblBase

  Ответить  
 
 автор: osmor   (12.08.2009 в 16:49)   личное сообщение
 
 

про таблицы, соответствующие каждой операции


непонял

  Ответить  
 
 автор: ShadowOfSun   (12.08.2009 в 16:59)   личное сообщение
 
 

В tblOperation
прописаны все возможные операции в базе
к некоторым операциям (например поступление материала) нужна "шапка", т. е. одна запись в таблице tblArrival соответствует нескольким записям в таблице tblBase.
то же самое с таблицами tblDispatchExt,tblDispatch и таблицей tblBase
В чем собственно вопрос
Как связать все таблицы между собой, что бы не было пустых "шапок" и непривязанных записей
P. S. Просьба извинить за корявую формулировку

  Ответить  
 
 автор: osmor   (12.08.2009 в 17:09)   личное сообщение
 
 

Вроде дошло
Боюсь что для пустых "шапок" только на уровне форм.
поскольку "шапку" придется сохранить до того как будут добавлены остальные записи.
т.е. условие на уровне таблиц работать не будут.
А вот запретить добавлять записи без шапки вполне возможно, и вроде у вас это сделано, целостность данных вроде установлена

  Ответить  
 
 автор: ShadowOfSun   (12.08.2009 в 17:27)   личное сообщение
 
 

В общих чертах понял
Заведу уборщицу "тетю Фросю" будет при старте базы порядок наводить или при закрытии.
Есть еще вопрос,
каким образом проверять количество в адресе
что бы обрабатывать списание из адреса
к примеру в адресе товара 20 шт., а пользователь пытается внести данные больше чем 20 шт, либо
один пользователь перемещает с адреса в другой адрес,а другой пользователь в это время выдает со старого адреса????

  Ответить  
 
 автор: osmor   (12.08.2009 в 17:40)   личное сообщение
 
 

Лучше проверять при каких либо действиях пользователя...
а то пользователь заведет "шапку" и закроет базу, а "тетя Фросю" эту запись удалит т.к. нет подчиненых, и пользователь будет искать...
мне ваша предметная область не совсем понятна, "адрес" "количество", добавляйте к этому еще и название полей и таблиц. Так будет понятнее поскольку базу я вижу.
Проверять можно функцией dcount или dlookup или свою написать с использованием recоrdset, если проверять непосредственно перед сохранением, то вероятность что переместят на другой адрес несуществующее кол-во или отдадут больше чем есть на этом адресе будет стремиться к нулю.
поскольку время сохранения записи значительно меньше чем время просмотра записи юзером

  Ответить  
 
 автор: ShadowOfSun   (12.08.2009 в 20:20)   личное сообщение
 
 

Спасибо, что подсказал
ведь из башки вылетело, в процессе работы кто-нибудь из пользователей может открыть/закрыть базу

Буду делать Фросю в форме

  Ответить  
 
 автор: kot_k_k   (13.08.2009 в 09:51)   личное сообщение
 
 

А если пользователь захочет загрузить "Справочник адресов" или "Номенклатурный перечень Материалов" из внешнего источника, типа чтоб было и не возится, то Фрося грохнет его сразу??? И будет вой.

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