0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
1

Не обнаружен уникальный индекс

17.05.2013, 23:32. Показов 13459. Ответов 16
Метки нет (Все метки)

Доброго времени суток!
В акцессе работаю 1 день, помогите разобратсья с парочкой проблем и советами..
(сразу говорю, чтобы не думали что прошу сделать за меня и это не задание в институте, просто делаю для себя и прошу помощи)

Введение в суть БД:
Кликните здесь для просмотра всего текста
Хотел упорядочить и автоматизировать покупку и продажу игровой валюты за реальные деньги.
От базы хотел, чтобы отображала Поставку ресурса на склад и "Продажу(отгрузку)" со склада.
Чтобы можно было просто написать в форме КОГДА КТО ЧТО в каком КОЛИЧЕСТВЕ и по какой ЦЕНЕ поставил или же купил со Склада.


Вот мои бд
Кликните здесь для просмотра всего текста
acces 2013 работаю в нем
acces 2003 сохранил в старом для вас


Проблема 1
Кликните здесь для просмотра всего текста
При создании связи, пишется мол "Не обнаружен уникальный индекс для адресуемого поля страницы" Яндекс мало что выдает при этом запросе. Возникает тогда, когда хочу сделать связь между полями, чтобы Стоимость покупки и Стоимость продажи бралась из таблицы Товара, для того, чтобы автоматически в форме подсчитывалось конечная Сумма поставки ну или же Продажи.
Миниатюры
Не обнаружен уникальный индекс  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2013, 23:32
Ответы с готовыми решениями:

Не обнаружен уникальный индекс
Как можно связать дату с датой, Н рейса с Н рейса?

Не обнаружен уникальный индекс
Создаю базу данных ( работа по учебе ). Создано и заполнено 8 таблиц. Но на шаге создания схемы...

Не обнаружен уникальный индекс
CREATE TABLE TypeSpis( + Integer PRIMARY KEY, + ...

Не обнаружен уникальный индекс
Всем доброго вечера! В общем, делал лабораторную по базам данных и наткнулся на ошибку во время...

16
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
17.05.2013, 23:39  [ТС] 2
Проблема 2
Кликните здесь для просмотра всего текста
При создании таблицы в конструкторе, я в некоторых полях выбирал мастер подстановок и для удобства выбирал не по первичному коду (или как это называется) а по Имени чего нибудь, в целях удобства заполнения формы, чтобы не помнить на память что под каким кодом там было.Ну и после соранения таблицы связи созадлись автоматически. Это видимо не правильный подход?
0
2841 / 773 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
18.05.2013, 02:40 3
1. Составные ключи однозначно фтопку: уникальным ключом должно быть поле счётчика, связанное с ним - числовое длинное целое (по крайней мере здесь в большинстве случаев принято так).

Каскадное удаление заодно туда же. При современных мощностях, ресурсах (очевидно опережающих спрос на такой объём, скорость и т.д.), предоставляемых производителями даже средних (и даже "слабых") машин, удалять что-либо неразумно: сейчас каждый палаточник-чебуречник пишет всё и имеет возможность хранить всё мультимедиа, взятое посредством его "ведётся наблюдение"...

Добавлено через 5 минут
2. Связи между таблицами делаем только в Схеме данных, никаких подстановок в таблицах (это баг Микрософта, подобный автозапуску флэшек): однозначно потом будете переделывать эту околесицу (поиск по Форуму: Поля подстановок в таблицах)

Добавлено через 30 минут
3. Развитие Аксесс остановилось с выходом версии 2003; после него - почти только так наз "плюшки", больше мешающие нормальной работе, чем ей способствующие.

"Остановилось" - это не в негативном смысле, но, как я уже упомянул, по объективным (реальным) причинам: потому что фактически уже тогда был полностью решён вопрос потребностей в организации необходимого функционала по учёту\расчёту деятельности как однопользовательских (индивидуальных, "под себя") систем, так и многопользовательских уровня малого (и даже среднего) бизнеса...

Магистральное направление сейчас - это взаимодействие пользователей не посредством локального, но вэб-интерфейса. Но на практике он, во-первых, пока мало приживается, во-вторых, очень мало спецов, умеющих его качественно делать, в третьих, ещё меньше заказчиков, которые в состоянии объяснить его необходимость и дать взвешенное технич задание на его исполнение. И это длится уже, наверное, год третий, и пока мало сдвигается с места. Реально...

Ещё раз: практически все фундаментальные практические решения (и не только в Аксе: для примера, Вай Фай и т.д.) внедрены ещё в самом начале нулевых и не имеют пока революционного продолжения, за исключением всяких мультимедийных плюшек (например, цифровое, интернет-тв и проч безтолковщина...)
2
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 03:28  [ТС] 4
Не понимаю, что опять то у меня не так?
Исправил связи на коды
Миниатюры
Не обнаружен уникальный индекс  
0
2841 / 773 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
18.05.2013, 03:41 5
Сначала создайте пустые таблицы, потом связи (с обеспечением целостности), потом заполняйте.

Она говорит, что в подчинённой таблице есть ключи, которые отсутствуют в главной

Добавлено через 1 минуту
на счёт составных ключей я видимо непонятно выразился????????????
0
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 04:01  [ТС] 6
Цитата Сообщение от Андрэич Посмотреть сообщение
Сначала создайте пустые таблицы, потом связи (с обеспечением целостности), потом заполняйте.

Она говорит, что в подчинённой таблице есть ключи, которые отсутствуют в главной

Добавлено через 1 минуту
на счёт составных ключей я видимо непонятно выразился????????????
Все таблицы пустые, только поля счетчиков содержат нулевые значения, ну и поля с денежным форматом, связи указывал с обеспечением целостности, но без каскадов.
Про составой ключ не совсем понял, имеется ввиду то, что в таблице ключ должен быть только 1, а именно Код, который в свою очередь счетчик?
Миниатюры
Не обнаружен уникальный индекс  
0
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 04:08  [ТС] 7
с такой схемой данных можно работать? или стоит еще чего-то исправить\добавить?
Конечная цель - чтобы в таблице Склад - отображался товар, который поставщик поставил, а тот товар что купили со склада - был либо удален, либо перенесен в мусорную таблицу.. Или это легче осуществить как-то по другому?
0
2841 / 773 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
18.05.2013, 11:14 8
Цитата Сообщение от LogaN4ik Посмотреть сообщение
с такой схемой данных можно работать? или стоит еще чего-то исправить\добавить?
Конечная цель - чтобы в таблице Склад - отображался товар, который поставщик поставил,

а тот товар что купили со склада - был либо удален, либо перенесен в мусорную таблицу.. Или это легче осуществить как-то по другому?
Нечто подобное сделано в учебной базе Борей, посмотрите.

Добавьте(ляйте) в таблицу(ы) текстовое поле (столбец), в котором будете отмечать статус той или иной позиции: Удалён, В корзине и т.п. Потом обращайтесь к этой таблице запросами с нужным условием, например:
SQL
1
SELECT * FROM таблица WHERE поле = "Удален"
- выведет все "удалённые" записи (строки),
SQL
1
... WHERE поле = "Купили со склада"
- ...

Добавлено через 6 минут
Первичный ключ - это поле с уникальным (в локальных пределах) значением, которое предназначено для того, чтобы различать двух разных Ивановых Иванов Ивановичей. Как видите, составной ключ по, например, полям ФИО дал бы сдесь "осечку"...
1
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 17:18  [ТС] 9
Если свзяь таблиц я делал по кодам, а не по именам, то как мне сделать так, чтобы при заполнении, допустим, формы Поставка мне не приходилось вводить вручную все КОДЫ, а был какой-нибудь выпадающий список по именам которые присвоены этим кодам?
Миниатюры
Не обнаружен уникальный индекс  
0
Эксперт MS Access
26745 / 14424 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.05.2013, 22:06 10
Цитата Сообщение от LogaN4ik Посмотреть сообщение
как мне сделать так, чтобы при заполнении, допустим, формы Поставка мне не приходилось вводить вручную все КОДЫ, а был какой-нибудь выпадающий список по именам которые присвоены этим кодам?
Это несложно даже при отсутствии практики. В уже готовой форме в режиме конструктора, в контекстном меню контрола выбираете Преобразовать элемент в... - Поле со списком. Далее, в свойствах уже комбобокса, задаете источник (Rowsource) - запрос или таблицу. Требуется немного аккуратности в задании свойств Присоединенный столбец (BoundColumn), Число столбцов (ColumnCount) и Ширина столбцов (ColumnWidths). Все это описано в хелепе.
1
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 22:16  [ТС] 11
Это несложно даже при отсутствии практики. В уже готовой форме в режиме конструктора, в контекстном меню контрола выбираете Преобразовать элемент в... - Поле со списком. Далее, в свойствах уже комбобокса, задаете источник (Rowsource) - запрос или таблицу. Требуется немного аккуратности в задании свойств Присоединенный столбец (BoundColumn), Число столбцов (ColumnCount) и Ширина столбцов (ColumnWidths). Все это описано в хелепе.
Дело в том, что этим способом в списке выводятся лишь значения из другой таблицы, ну тоесть Число счетчика, а мне надо сделать так, чтобы не смотреть чему соответсвует какой код, просто выбрать допустим заместо кода склада, его название.

Или я просто могу заместо использования Кодов в форме, поставить поля по наименованию и все будет работать? я просто не понимаю как работает взаимосвязь..
0
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 22:25  [ТС] 12
И как сделать так, чтобы при выборе определенного товара, его цена автоматически вставлялась в поле в этой же форме?
Миниатюры
Не обнаружен уникальный индекс  
0
Эксперт MS Access
26745 / 14424 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.05.2013, 22:42 13
Цитата Сообщение от LogaN4ik Посмотреть сообщение
Дело в том, что этим способом в списке выводятся лишь значения из другой таблицы, ну тоесть Число счетчика, а мне надо сделать так, чтобы не смотреть чему соответсвует какой код, просто выбрать допустим заместо кода склада, его название.
Ну, я же не зря сказал, что требуется немного аккратности при определении свойств комбо и призвал к чтению хелпа. :-)
Свойство Ширина столбцов (ColumnWidths) задает ширину каждого из столбцов источника комбо. Если задать ширину 0, то этот столбец не будет выводится вообще. Вот этим фокусом и пользуются. Задают нулевую ширину числового столбца с кодом и тогда вместо числового кода выводится текстовое значение из следующего столбца. Получается: видимое значение текст, а Value (значение) комбо будет столбец, номер которого задан в свойстве Присоединенный столбец (BoundColumn)

Добавлено через 5 минут
Цитата Сообщение от LogaN4ik Посмотреть сообщение
И как сделать так, чтобы при выборе определенного товара, его цена автоматически вставлялась в поле в этой же форме?
Есть несколько способов. Все описывать не буду. Сделайте простейшим способом:
1. Включите в источник комбо товара также поле цены.
2. На событии После обновления (AfterUpdate) комбо, запишите команду присвоения полю цены значения соответствующего столбца из источника комбо Me.Цена=Me.МойКомбо.Column(3). Здесь 3 это условный номер столбца источника комбо, где записана цена.
Теперь, после выбора товара, цена будет проставляться в своем поле
1
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
18.05.2013, 23:30  [ТС] 14
Если бы я знал, что конкретно искать в помощи..
Спасибо, достиг требуемого, изменив помимо ширины столбца с присоединяемым еще и Число столбцов =2

А вот с ценой, что-то не получается.
Выдает в списке где должен быть Имя товара(а на самом деле Код) его цену..
Это действительно самый простой способ ? =))
Миниатюры
Не обнаружен уникальный индекс   Не обнаружен уникальный индекс  
0
Эксперт MS Access
26745 / 14424 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
18.05.2013, 23:53 15
LogaN4ik, немного недоперестались.
Запрос в источнике строк: Select * from Товары или просто Товары. В вашем варианте наименование товара просто не попало в источник списка
Присоединенный столбец - правильно
Количество столбцов - 3
Ширина столбцов: 0;2.5;0
Ширина списка: 2.5 (эту ширину, как и ширину ненулевого столбца в предыщем свойстве подбираете по желанию)
Команда в процедуре AfterUpdate поля Код товара: Me.Цена=Me.[Код товара].Column(2)
Номера в Column считаются от 0. Самое левое поле - номер 0.
1
2841 / 773 / 41
Регистрация: 20.05.2012
Сообщений: 2,056
19.05.2013, 00:08 16
LogaN4ik,
на первом этапе можно даже не заморачиваться пока вручную св-вами полей комбобокса (пОля с выпадающим списком).
Попробуйте без преобразования обычного поля в комбобокс. Просто удалите поле (в режиме конструктора), а на его месте заново создайте поле со списком и следуйте инструкциям Мастера. По умолчанию он вроде как раз так и предлагает, как описал mobile: то есть скрыть ключевое поле. Разбирайтесь с Мастером поля со списком
1
0 / 0 / 0
Регистрация: 30.06.2010
Сообщений: 47
19.05.2013, 00:28  [ТС] 17
Андрэич, спасибо, действительно удаляет. Но со скрытием я уже разобрался, я сейчас не могу сделать чтобы при выборе в поле со списком "Товар" - менялась его цена в поле "Цена ед поставки".

Пытаюст пока сделать вот это, но не выходит..:
Запрос в источнике строк: Select * from Товары или просто Товары. В вашем варианте наименование товара просто не попало в источник списка
Присоединенный столбец - правильно
Количество столбцов - 3
Ширина столбцов: 0;2.5;0
Ширина списка: 2.5 (эту ширину, как и ширину ненулевого столбца в предыщем свойстве подбираете по желанию)
Команда в процедуре AfterUpdate поля Код товара: Me.Цена=Me.[Код товара].Column(2)
Номера в Column считаются от 0. Самое левое поле - номер 0.
Миниатюры
Не обнаружен уникальный индекс   Не обнаружен уникальный индекс  
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2013, 00:28
Помогаю со студенческими работами здесь

Не обнаружен уникальный индекс для адресуемого поля главной таблицы
Здравствуйте. При связывании двух таблиц с одинаковыми полями Учебная группа не удается установить...

Не обнаружен уникальный индекс для адресуемого поля главной таблицы
Всем привет. Не могу правильно наладить связи для БД "Сериалы". Нужно сделать так, чтобы в таблице...

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

Не обнаружен уникальный индекс для адресуемого поля главной таблицы
Помогите пожалуйста! А Access 2010 создала таблицы, пытаюсь создать связи в схеме данных и мне в...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru