|
|
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста - экстренная ситуация, с которой не могу разобраться! Есть база данных в Access (изначально была в 97-ом, потом вынужденно и неимоверными усилиями перевели её на 2000), в ней есть таблица с такой структурой данных: идентификатор (тип данных: счётчик) и семь текстовых полей. Размер поля счётчика - "длинное целое", новые значения - "последовательные", индексировано (совпадения не допускаются). При попытке добавления нового значения, с непонятной зависимостью возникает ошибка 3022 (ошибка Microsoft Jet - ядра базы данных, суть которой сводится к тому, что в индексе без совпадений повторений быть не может - не может быть два одинаковых ключа, например, число 23 не может быть ключом в двух строках). Ошибка эта возникает при добавлении новых записей, при том, что текущее (последнее) значение идентификатора - 1603, общее количество - 1594. То есть получается, что счётчик выдаёт повторяющееся значение (начиная с единицы, которая, понятное дело уже была) а ядро ловит, что это значение уже было и больше повторяться не может. Вот такая вот хрень. Воспроизводится она и вручную (при обзоре таблицы) и из кода. В своё время был найден обойти этот идиотизм: скопировать таблицу в новую, новой дать то же имя, подправить связи. Работало до нового повторения и нового натыкания на волшебное число, превышающее long int, определённое в типе данных. Однако сейчас и этот метод перестал работать - я в шоке - что делать не знаю, а завтра нужно это (чужое) творение возращать заказчику. В интернете искал, везде искал но ничего на этот счёт не нашёл. Ошибка не исправлена вплоть до 3-го сервис пака. Помогите, пожалуйста - может просто мыслями, на худой конец... Help! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 21:47:51 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Надо сказать счетчику, откуда ему надо считать, раз уж заставили его считать сначала: http://www.sql.ru/faq/faq_topic.aspx?fid=214 Q2, Q3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 21:50:57 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
А грохнуть счетчик и создать его занова не получиться? Надеюсь его предыдущие значения не играли особой роли... Жизнь не перестает меня радовать!!! Всё павно HL2 игра всех времён и народов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 22:00:11 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Я это уже проходил. /topic/108865&hl= Не помогают ни перонос данных в другую таблицу, ни запрос на вставку. Вернее помогают ненадолго, потом все повторяется. Мое убеждение, что это свойство "леченого" Accessa. Нашел два решения, но оба вам вряд-ли понравятся: 1) возврат к Access 97; 2) замена плохо "леченой" версии на легальную. Я использую оба решения - работают безотказно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 23:37:11 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
ГеоНадо сказать счетчику, откуда ему надо считать, раз уж заставили его считать сначала: http://www.sql.ru/faq/faq_topic.aspx?fid=214 Q2, Q3 Почему сначала, не сначала - откуда было... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2005, 23:53:45 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
NGЯ это уже проходил. /topic/108865&hl= Не помогают ни перонос данных в другую таблицу, ни запрос на вставку. Вернее помогают ненадолго, потом все повторяется. Мое убеждение, что это свойство "леченого" Accessa. Нашел два решения, но оба вам вряд-ли понравятся: 1) возврат к Access 97; 2) замена плохо "леченой" версии на легальную. Я использую оба решения - работают безотказно. Всем спасибо за оперативные ответы и предложения. "Лечен" офи вроде вполне нормальными гуманными способами... Двигаться по версиям, к сожалению, невозможно... Если можно - оставь, пожалуйста, свой e-mail или вот мой - xlex0x835[AT]rambler[DOT]ru - хотелось бы выяснить в чём отличия "леченой" от "нелеченой" версии и может что поможет из твоих методов? Заранее спасибо. Кстати, по ссылке упоминают про топик, где вроде нашли решение - есть такой или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 00:08:13 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Xlex(0x835) "Кстати, по ссылке упоминают про топик, где вроде нашли решение - есть такой или как? Обрати внимание на даты. С той поры много воды утекло... Это в процессе лечения казалось, что лекарство найдено. Рецидивы случались многократно. Когда надоело несколько раз в неделю приезжать в офис на лечение базы - первым делом откатил все в А97 и поставил перед руководством вопрос о покупке корпоративной версии А2002/2003. Покупка - дело не быстрое, а между тем упомянутого глюка, при работе в А97 не наблюдалось вплоть до установки лицензионного А2003 в сентябре 2004г. С той поры все крутится без проблем. "Лечен" офи вроде вполне нормальными гуманными способами... Я тоже так думал. От чего лечим? От активации? Но ведь вы же напоролись на те-же грабли, что и я - значит лечение не пошло впрок. Мой адрес есть на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 00:39:50 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Поставил на другую машину Office 2003, сразу обновил до всего последнего, так этот офис при открытии файла выдаёт только две ошибки: "Your XXX database or project contains a missing or broken reference to the file 'C' version 1.0. \n *To ensure that your database or project works properly, you must fix this reference" и "The Visual Basic for Applications project in the database is corrupt", но зато в "вечном цикле" - то есть нажимаем на кнопку Ok в одном оке - появляется второе, нажимаем Ok во втором - появляется первое. И так далее, пока не кончается терпение и Access не снимается как процесс. Это понимать как то, что Access считает этот файл вырождением человеческой мысли или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:19:14 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Сделайте пустой новый файл аксесса и мышкой перетаскивайте объекты из старого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 14:34:31 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Программист-ЛюбительСделайте пустой новый файл аксесса и мышкой перетаскивайте объекты из старого. После этого странного действа полезли новые ошибки: Type mismatch... Что откуда берётся, если я ничего не менял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:18:00 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:19:08 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Xlex(0x835)После этого странного действа полезли новые ошибки: Type mismatch... Что откуда берётся, если я ничего не менял? 1 дык DAO само не подключиться,а RecordSet есть как в ней,так и в ADODB 2 считается хорошим тоном приводить не только код ошибки,но и контекст в котором она(ошибка) возникает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:31:35 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Shuhard Xlex(0x835)После этого странного действа полезли новые ошибки: Type mismatch... Что откуда берётся, если я ничего не менял? 1 дык DAO само не подключиться,а RecordSet есть как в ней,так и в ADODB 2 считается хорошим тоном приводить не только код ошибки,но и контекст в котором она(ошибка) возникает Знаю, но база данных не моя, и я не готов сказать что там и откуда... В любом случае - пардон, привожу более подробную информацию. Ошибка возникает (после реализации совета о пересоздании базы данных, перетаскиванием объектов по одному) при нажатии на кнопку в одной форме (это действие должно вызвать появление второй формы). Debugger останавливает на строчке: Set rst = CurrentDb.OpenRecordset("date_updt") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:47:25 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Лох Позорныйчитайте фак http://www.sql.ru/faq/faq_topic.aspx?fid=213 Видимо, имеется ввиду этот пункт: Q13: На команды с объектом Recordset выдается ошибка о несоответствии типов. A: Пиши не просто Recordset, а DAO.Recordset. А также: DAO.Database и т.д. А как он ко мне применим (строка кода приведена в сообщении выше)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:50:23 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Shuhard 1 дык DAO само не подключиться,а RecordSet есть как в ней,так и в ADODB Извиняюсь, а что это значит (для тех, кто в большей степени знаком с MySQL и PostgreSQL)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 15:52:27 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
в любом программном модуле - tools - references DAO - оставить ADO - отключить или везде по тексту расставить префиксы DAO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 16:32:11 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Shuhardв любом программном модуле - tools - references DAO - оставить ADO - отключить или везде по тексту расставить префиксы DAO Спасибо - это решило проблему с Type mismatch, но изначальная проблема так и осталась... =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:06:50 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
то есть Вам удалось за 34 минуты повторить сбой ? если да - то создайте макет из одной таблицы и формы с удивительным кодом,сожмите ,сархивируйте и к нам на конфу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:42:29 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Shuhardто есть Вам удалось за 34 минуты повторить сбой ? если да - то создайте макет из одной таблицы и формы с удивительным кодом,сожмите ,сархивируйте и к нам на конфу. Сбой никуда и не уходил - он есть... =( Причём остаётся даже если пересоздовать счётчик - первый раз срабатывает, второй - гарантированно выдаёт ошибку. Я бы с удовольствием переслал бы, но файл размером в 34 метра и написан через такую ж... (ненормализованные структуры таблиц, повторение данных, куча лишнего ненужного кода и данных, база данных, как я относительно недавно выяснил, даже никогда скомпилироваться не могла), так что выделить оттуда кусок, не думаю, что смогу... =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 17:53:48 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
нам нужна одна пустая таблица и одна форма(если гадиться вводом данных в таблицу - то хватит только ее) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 18:01:52 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
Shuhardнам нужна одна пустая таблица и одна форма(если гадиться вводом данных в таблицу - то хватит только ее) В аттаче - файл с единственной таблицей (демонстрирующей ту самую ошибку). Это уже "загаженная" таблица, то есть в том виде, в котором ошибка воспроизводится и в ручную. Что нужно сделать: открыть файл с зажатым шифтом, в таблицах выбираем единственную cars, идём в конец и во второе (единственное, разрешённое для добавления) поле пытаемся что-то добавиться - тут же в счётчике получаем повторяющееся значение и тут же сообщение, что этого быть не может... =/ Очень прошу - если у кого ошибка не будет вопроизводится - напишите здесь об этом и весьма желательно с конфигурацией офиса и системой (полный номер, сервис паки, хотфиксы). Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 18:32:10 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
посмотрел. сделай вот что 1) встань на свою таблицу и кликни правой клавишей мыши, выбери "копировать" 2) кликни еще раз и выбери вставить.-> только структура имя новой таблице дай cars2 3)на странице запросов создай и выполни запрос следующего текста INSERT INTO cars2 SELECT cars.* FROM cars потом удали старую таблу и переименуй новую. ЗЫ лень искать, но в ФАКе оно точно было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 19:00:54 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
смотрелкинпосмотрел. сделай вот что Спасибо за совет - сделал. Всё прошло нормально - в новой таблице (второй) могу добавлять - всё нормально. Переименовываю её в cars - проверяю - всё нормально. Запускаю форму выполняю пасы руками (как обычный пользователь) и мне говорят всё то же самое - дублирующееся значение в индексе... После чего добавление значений руками приводит к тому же результату, что приклёплён в аттаче выше - руками добавление тоже не проходит... =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 19:15:32 |
|
||
|
Access (2000/2002) - неуникальные значения счётчика, ошибка 3022
|
|||
|---|---|---|---|
|
#18+
а зачем у Вас счетчик с 0 начинается - сделал с 1 - не ломается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2005, 19:24:54 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32890083&tid=1668918]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
84ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 380ms |

| 0 / 0 |
