14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
1 | |
Связь между таблицами17.01.2014, 15:38. Показов 2266. Ответов 20
Метки нет (Все метки)
Здравствуйте.
Создал 4 таблицы, подскажите как создать между ними связь. Порядковый номер (поле вычисляемое), по нему Аксес пишет, что не может связать вычисляемые поля. С помощью запросов, тоже пишет связь надо создать.
0
|
17.01.2014, 15:38 | |
Ответы с готовыми решениями:
20
Связь между таблицами Связь между таблицами Связь между таблицами Связь между таблицами |
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
|
|
17.01.2014, 15:58 | 2 |
serg_66 - Чтобы создать связи между таблицами, связываемые Поля должны иметь Тип данных
Счетчик - Числовое Числовое - Числовое Текстовое - Текстовое А - не Вычисляемое , это что то новенькое.
0
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
17.01.2014, 16:10 [ТС] | 3 |
А по другому никак. У нас номер входящий должен быть
14/1/1... год 1 хранилище номер попорядку 14/2/1... год 2 хранилище номер попорядку 14/3/1... год 3 хранилище номер попорядку 14/ок/1... год Отдел Кадров номер попорядку. По другому никак пронумеровать не получается, или у всех будут 1 1 1 1
0
|
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
|
|
17.01.2014, 16:24 | 4 |
serg_66 - Лично Ваш пример просмотреть не могу, т. к. Акс - 2000, но думаю, что нужно создать в каждой таблице поле Код с типом данных - Счетчик, + в таблице где будет значение Много, там создать поле Код Числовое.
Не будет ошибок Ну может кто еще сможет просмотреть БД и на примере посоветует.
0
|
0 / 0 / 0
Регистрация: 23.03.2012
Сообщений: 19
|
|
19.01.2014, 15:55 | 5 |
Опишите, что должна делать Ваша база. Там четыре абсолютно одинаковые таблицы.
0
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
19.01.2014, 16:57 [ТС] | 6 |
Есть 4 хранилища (или отдела). К нам в архив приходят письма и их распределяют по хранилищам. Ну и, соответственно, их надо регистрировать.
В 1 хранилище нумерация идет 14/1/1 ...14/1/1256 (первая цифра 14 - год, вторая - № хранилища, а третья - порядковый номер, соответственно во 2 хранилище номера идут 14/2/1 и т.д., в 3 хранилище - 14/3/1 и т.д., а в отделе кадров - 14/ок/1 и т.д. Если убрать 14/1/ 14/2/ 14/3/, то во всех хранилищах будут одинаковые номера документов. Поэтому и нужны 4 таблицы одинаковые (регистрация документов в каждом хранилище или отделе). Больше нидо-чего не додумались. В конце надо выбирать документы из разных таблиц по их номерам и собирать в другой таблице. Может кто подскажет, как разделить регистрацию по другому, чтоб номера разделялиь в каждом отделе? Методом выбора из списка - не получается. Регистрируют в одно время 3-4 человека (каждый разное хранилище).
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 17:25 | 7 |
Все таблицы надо объединить в одну. Таблиц должно быть минимум две, я сделал: ААА Отделы и ААА Хранилище. В запросе Хранилище посмотрите то, что получилось.
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 17:39 | 8 |
Если хотите, то запросом можно и эти четыре объединить. Но в вашем виде заполнять не удобно.
0
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
19.01.2014, 17:43 [ТС] | 9 |
Если честно, то не понимаю зачем еще 2 таблицы, что они дают.
В день регистрируется более 200 писем и запросов и они забиваются с помощью форм (их тоже 4). В прошлом году было зарегистрировано более 35 000 документов. Может мы все организовали не правильно, но нужны такие графы.
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 17:54 | 10 |
я не стал удалять ваши. для выполнения вашей задачи надо построить отдельно таблицы - справочники, как например таб. ОТДЕЛЫ. всю остальную информацию записываем через одну форму в таб. ХРАНИЛИЩЕ. естественно в нее надо добавить нужные вам поля.
1
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
19.01.2014, 18:25 [ТС] | 11 |
Нет, нельзя, чтобы были одинаковые входящие номера, а их будет одинаковых по 4 каждого номера.
Эти номера пишутся еще и на самих документах, потом раза два будут добавляться другие данные. В итоге запутаемся с одинаковыми номерами
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 18:36 | 12 |
третья часть номера - это часть номера, а не номер. все номера у вас будут зависить не от третьей части, а от второй- ОТДЕЛА. конечно в отделе в один год не должно быть одинаковой третьей части. за это может ответить поле тип СЧЕТЧИК. и номера в документах должны писаться не 1 или 2, а 14-2-2 или 14-ОК-1. тогда путаницы не будет.
0
|
6 / 23 / 2
Регистрация: 29.01.2013
Сообщений: 174
|
|
19.01.2014, 18:40 | 13 |
регистрацию можно сделать по составному ключу (только не понял, что такое цифра 14, но это не принципиально)
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 18:58 | 14 |
выше говорилось, что это должен быть год записи.
Добавлено через 12 минут регистрация не должна быть по ключу, т. к. если запись удалите и повторите ее снова, то у вас того номера уже не будет. для учета документооборота номера документов не должны разрываться.
0
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
19.01.2014, 19:21 [ТС] | 15 |
Да, совершенно верно, но я опираюсь на ключевое поле, чтоб самому не присваивать порядковые номера.
Раза два пропадали номера из-за сети и невнимательности сотрудников. Но исправлял кнопкой "Сжать и возобновить базу". Еще раз повторюсь, простите. У нас такая гонка, что за номерами следить некогда. А у меня в таблице номера 14/1/1 сами нумеруются. Ну ладно, спасибо всем, наверное ничего лучше не получится.
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 19:35 | 16 |
я все же продолжу. у меня тоже есть заказы и за месяц регистрируем около 600. так вот, у нас мастера в 20 цехах открывают заказы. я у себя в кабинете открываю форму для регистрации. нажимаю кнопку и они по порядку продолжая ранее присвоенные номера регистрируются. ни один заказ не пропустится. главное нажать КНОПКУ.
0
|
6 / 23 / 2
Регистрация: 29.01.2013
Сообщений: 174
|
|
19.01.2014, 19:58 | 17 |
ребята! не путайте ключевое поле и поле с типом данных счетчик. При удалении счетчик не восстановится, а ключевое поле тут не причем. Только при удаленни записи в связанних таблицах (при сохранении целостности данних) соответсвующие записи тоже удаляться (это раз), при удалениизаписи счетчика он полюбому не восстановится (это два) поэтому "регистрация не должна быть по ключу, т. к. если запись удалите и повторите ее снова, то у вас того номера уже не будет" - не аргумент. У меня формат mdb. Если преобразуете свою - помогу
0
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
19.01.2014, 20:07 [ТС] | 18 |
Дело в том, что у нас несколько раз надо обращаться к базе:
1. Регистрация документа (регистрируется документ) 2. Отрпавка документа в хранилище (вставка даты и передача документа в руки) 3. Прием документа обратно (вставка даты в таблицу) 4. Вставка даты и номера реестра (тоже надо разносить в таблицу) Но я большинство дат автоматом вставляю, ну и сами понимаете работают не профи, а кто был, того и посадили к компьютеру. Пытаюсь всякими способами облегчить тётям труд. Да и сам ток начал книжки читать, верхов нахватался И в итоге все запутаемся с одинаковыми номерами. Добавлено через 6 минут Я удалял все данные после пропавшего номера, потом жал кнопку "восстановить базу и сжать" и потом номер появлялся обратно. Один раз после удаленного номера был напечатан один номер, а второй раз 22 номера (пришлось базу копировать, потом в старой удалять 22 номера, потом жал кнопку "восстановить базу", а потом копировал 22 записи в старую базу. И все прокатило. А так думал черт с ними, с пропавшими номерами, но появились другие проблемы (очень плохие) - пришлось воостанавливать. И все из-за невнимательности тётек.
0
|
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
|
|
19.01.2014, 20:21 | 19 |
это естественно наши советы. их выслушать надо и естественно поступить по своему. а со счетчиком я перемудрил, номер у меня присваивается через запрос на добавление, в нем происходит расчет следующего номера.
0
|
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
|
|
19.01.2014, 20:34 [ТС] | 20 |
Спасибо за советы.
Подскажите еще,может кто знает, если в графу "Фамилия" ранее была внесена фамилия Иванов, можно сделать как в Exel чтоб Access показал, что фамилия "Иванов" уже была. Чтоб не повторять запрос.
0
|
19.01.2014, 20:34 | |
19.01.2014, 20:34 | |
Помогаю со студенческими работами здесь
20
Связь между таблицами Связь между таблицами Правильная связь между таблицами Связь между таблицами/нормализация БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |