Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
14 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 80
1

Связь между таблицами

17.01.2014, 15:38. Показов 2266. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.
Создал 4 таблицы, подскажите как создать между ними связь.
Порядковый номер (поле вычисляемое), по нему Аксес пишет, что не может связать вычисляемые поля.
С помощью запросов, тоже пишет связь надо создать.
Вложения
Тип файла: rar Base_Arhiv.rar (81.3 Кб, 18 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2014, 15:38
Ответы с готовыми решениями:

Связь между таблицами
Здравствуйте ! Столкнулся с проблемой. Есть 2 таблицы и соответственно 2 формы (Авто, владелец)....

Связь между таблицами
Здрайствуйте,немогу разобраться с некоторой части кода SELECT * FROM tab1 T1, tab2 T2, tab3...

Связь между таблицами
Уважаемые коллеги добрый день. Ситуация следующая. Есть таблица1 с вычисляемым полем - некий...

Связь между таблицами
Есть первая таблица связывающая названия разделов информации (разделов сайта, например) и...

20
8860 / 5908 / 585
Регистрация: 27.03.2013
Сообщений: 19,574
17.01.2014, 15:58 2
Цитата Сообщение от serg_66 Посмотреть сообщение
что не может связать вычисляемые поля
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
Эксперт MS Access
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
19.01.2014, 17:25 7
Все таблицы надо объединить в одну. Таблиц должно быть минимум две, я сделал: ААА Отделы и ААА Хранилище. В запросе Хранилище посмотрите то, что получилось.
Вложения
Тип файла: rar Base_Arhiv1.rar (81.5 Кб, 17 просмотров)
0
Эксперт MS Access
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
Эксперт MS Access
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
Эксперт MS Access
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
Эксперт MS Access
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
Эксперт MS Access
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 минут
Цитата Сообщение от Doktor1962 Посмотреть сообщение
ребята! не путайте ключевое поле и поле с типом данных счетчик. При удалении счетчик не восстановится, а ключевое поле тут не причем. Только при удаленни записи в связанних таблицах (при сохранении целостности данних) соответсвующие записи тоже удаляться (это раз), при удалениизаписи счетчика он полюбому не восстановится (это два) поэтому "регистрация не должна быть по ключу, т. к. если запись удалите и повторите ее снова, то у вас того номера уже не будет" - не аргумент. У меня формат mdb. Если преобразуете свою - помогу
Я удалял все данные после пропавшего номера, потом жал кнопку "восстановить базу и сжать" и потом номер появлялся обратно. Один раз после удаленного номера был напечатан один номер, а второй раз 22 номера (пришлось базу копировать, потом в старой удалять 22 номера, потом жал кнопку "восстановить базу", а потом копировал 22 записи в старую базу. И все прокатило. А так думал черт с ними, с пропавшими номерами, но появились другие проблемы (очень плохие) - пришлось воостанавливать. И все из-за невнимательности тётек.
0
Эксперт MS Access
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2014, 20:34
Помогаю со студенческими работами здесь

Связь между таблицами
Добрый день! Создал простенькую бд, теперь хочу сделать связи между таблицами, но как-то не...

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

Правильная связь между таблицами
Доброе время суток. Помогите разобраться. Есть таблица "Команда" (код команды, название команды) и...

Связь между таблицами/нормализация БД
Сразу извиняюсь за возможные граматические ошибки .-. Нужна помощь по нормализации БД(нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru