powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Теряются записи при создании таблицы запросом!
26 сообщений из 26, показаны все 2 страниц
Теряются записи при создании таблицы запросом!
    #32713535
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация: Запрос на создание таблицы в режиме таблицы выдаёт 4019 записей. А если выполнить этот запрос, то в полученой таблице лишь 3952 записей.
Вопрос: отчего так может случаться и как с этим бороться
Спасибо.

З.Ы.: а чего забросили мой предыдущий топик? или на те вопросы невозможно ответить (или можно, но не вежливо)
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32713563
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри ключевые поля в таблице. И нет ли дублирующихся строк в запросе
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32713573
Ort84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hypersСитуация: Запрос на создание таблицы в режиме таблицы выдаёт 4019 записей. А если выполнить этот запрос, то в полученой таблице лишь 3952 записей.
Вопрос: отчего так может случаться и как с этим бороться
Спасибо.

З.Ы.: а чего забросили мой предыдущий топик? или на те вопросы невозможно ответить (или можно, но не вежливо)

Я что-то не понял: в таблице, которую Вы берете за основу было 4019 записей, потом Вы сделали SELECT ТаблИсходная.Поле1, ТаблИсходная.Поле2 INTO ТаблСозданная FROM ТаблИсходная и в ТаблСозданная оказалось 3952 записи? Ситуация такая?
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714061
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ort84, почти. За исключением, что источник записей не таблица, а запрос на объединение. В общем, я не смогу объяснить, выкладываю архив базы:

http://www.financegroup.kiev.ua/temp/db1.rar

Там правда немного другое кол-во записей, нежели я описывал (4021 в запросе Объединение абсолютное и в запросе agg1 , если его открыть в режиме формы). Однако, если его выполнить, то в результирующей таблице test_agg - 3954 записей.

CtrlAlt, повторяющиеся записи правда могут быть. Однако разве один и тот же запрос не должен в режиме формы и при создании таблицы выдать одно и то же кол-во записей? Или я ошибаюсь?

А что конкретней с ключевыми полями в таблице?

Спасибо.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714123
Mufta_Vlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу предположить, что в таблице с которой берутся записи для добавления, присутствуют пустые поля. В данной ситуации запрос на добавление игнорирует их, отсюда и разница в источнике и в получателе. Т.е. в получатель не добавляются данные, где были пустые поля.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714154
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CtrlAltПосмотри ключевые поля в таблице. И нет ли дублирующихся строк в запросе

Вы правы, дубли в исходном запросе таки есть. Т.е., если ещё в исходный запрос добавить DISTINCT, то кол-во записей в обоих случаях совпадает. Однако что же делать, если мне понадобится сохранить повторяющиеся записи в конечной таблице?
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714164
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION ALL
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714174
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mufta_VladМогу предположить, что в таблице с которой берутся записи для добавления, присутствуют пустые поля. В данной ситуации запрос на добавление игнорирует их, отсюда и разница в источнике и в получателе. Т.е. в получатель не добавляются данные, где были пустые поля.
Боюсь, что это не так. Записей, где все 4 поля (по которым происходит выборка) пустые - нет. А поочерёдно пустые поля запрос отобрал нормально - все они попали в запрос.
Проблема в другом - запрос на добавление добавляет не все записи из тех, которые показывает сам же в режиме таблицы.

Спасибо.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714181
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нельзя ли взглянуть на запрос (или на его усеченную версию)?
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714187
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и на то, как этот запрос запускается
(жопой чую, что опять на отсутствие dbFailOnError буду материться)
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714214
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые Geo и ЛП, конечно, можно! Я даже с этой целью и ссылочку поместил чуть выше (6-ю сообщениями выше). Ну ежели не хотите качать 500 кил. Разражусь тут:

SELECT [Объединение абсолютное].Модель, [Объединение абсолютное].Подкатегория, [Объединение абсолютное].ManID, [Объединение абсолютное].Описание INTO test_agg
FROM [Объединение абсолютное];

Однако лучше вам таки глянуть на всю систему запросов.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714217
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
качать я вообще ничего не буду (религия не позволяет)
а вот насчет того как ты этот запрос запускаешь - еще раз спрошу.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714218
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rivkin DmitryUNION ALL
понял, спасибо.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714246
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лох Позорныйкачать я вообще ничего не буду (религия не позволяет)
а вот насчет того как ты этот запрос запускаешь - еще раз спрошу.
Хорошо. Различия в кол-ве записей у меня появляются когда я:

1) открываю этот запрос в конструкторе, а затем - в режиме таблицы. Кол-во записей: 4021
2) запускаю даный запрос и он кричит, что добавил в таблицу 3954 записи

Хочу однако добавить, что если убрать дубли в исходном запросе всё будет чики-пики. Но из принципа хочу понять, почему при дублях есть это несоответствие.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714278
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вашей ссылочке полмегабайта весу. Оно мне надо? Эх... Ладно...
Во как...

Причем это не в группировке дело - группировка по созданной test_agg дает еще меньше записей.

Нашшупал:

SELECT distinctrow NProduct.Модель, NProduct.Подкатегория, NProduct.ManID, NProduct.Цена, NProduct.Описание, Product.CategoryID
FROM NProduct INNER JOIN Product ON (NProduct.Подкатегория=Product.CategoryID) AND (NProduct.Модель=Product.ProductShortDescriptionRUS) AND (NProduct.Описание=Product.ProductLongDescriptionRUS) AND (NProduct.ManID=Product.ManufacturerID);

Если его убрать, получится три восемьсот с чем-то записей. И столько же создастся. Глюк-с? Не знаю. А зачем тут distinctrow?
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714306
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeoВ вашей ссылочке полмегабайта весу. Оно мне надо? Эх... Ладно...
Во как...

Причем это не в группировке дело - группировка по созданной test_agg дает еще меньше записей.

Нашшупал:

SELECT distinctrow NProduct.Модель, NProduct.Подкатегория, NProduct.ManID, NProduct.Цена, NProduct.Описание, Product.CategoryID
FROM NProduct INNER JOIN Product ON (NProduct.Подкатегория=Product.CategoryID) AND (NProduct.Модель=Product.ProductShortDescriptionRUS) AND (NProduct.Описание=Product.ProductLongDescriptionRUS) AND (NProduct.ManID=Product.ManufacturerID);

Если его убрать, получится три восемьсот с чем-то записей. И столько же создастся. Глюк-с? Не знаю. А зачем тут distinctrow?

Пардон за огромный файл, но порезав исходные таблицы, глюк исчезает. Потому пришлось постить as is.

Думаю, Вы правы. Уберу distinctrow, лучше почищу исходные таблицы от полных дублей. А в запрос вставлю distinct или вообще ничего - так, вроде, не глючит.

А вы вообще с таким сталкивались?

Спасибо.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714317
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeoВ вашей ссылочке полмегабайта весу. Оно мне надо? Эх... Ладно...
Во как...

Причем это не в группировке дело - группировка по созданной test_agg дает еще меньше записей.

Нашшупал:

SELECT distinctrow NProduct.Модель, NProduct.Подкатегория, NProduct.ManID, NProduct.Цена, NProduct.Описание, Product.CategoryID
FROM NProduct INNER JOIN Product ON (NProduct.Подкатегория=Product.CategoryID) AND (NProduct.Модель=Product.ProductShortDescriptionRUS) AND (NProduct.Описание=Product.ProductLongDescriptionRUS) AND (NProduct.ManID=Product.ManufacturerID);

Если его убрать, получится три восемьсот с чем-то записей. И столько же создастся. Глюк-с? Не знаю. А зачем тут distinctrow?

Пардон за огромный файл, но порезав исходные таблицы, глюк исчезает. Потому пришлось постить as is.

Думаю, Вы правы. Уберу distinctrow, лучше почищу исходные таблицы от полных дублей. А в запрос вставлю distinct или вообще ничего - так, вроде, не глючит.

А вы вообще с таким сталкивались?

Спасибо.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714444
3898<>3954

Удивительное рядом (но оно запрещено):
если убрать DISTINCTROW , то это равносильно замене его на ALL.
Вопрос на засыпку: почему SELECT ALL возвращает меньше записей(3898), чем SELECT DISTINCTROW (4021)??

ничего не понимаю (с)
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714478
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
краснобай и баламут3898<>3954

Удивительное рядом (но оно запрещено):
если убрать DISTINCTROW , то это равносильно замене его на ALL.
Вопрос на засыпку: почему SELECT ALL возвращает меньше записей(3898), чем SELECT DISTINCTROW (4021)??

ничего не понимаю (с)

вот и я о том же
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714497
удивительное еще ближе:
втавляю руками предикат ALL (SELECT ALL) в [Объединение абсолютное] - получаю 3893 записи (а не 3898 причем аксесс "убрал" ALL из сохраненного SQL запроса, но продолжает выдавать 3893 до тех пор, пока не вставишь лишний пробел в текст SQL).
налицо "совпадение" текста SQL запросов, но разное количество записей.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714523
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М.б. база покоцанная?..
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714587
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GeoМ.б. база покоцанная?..
такое можно допустить,
за целесность базы отвечать не могу - машина висла пару раз
хотя работаю с ней только я

ладно, попробую начать с нуля - заново создам таблицы (я их из Excel импортирую). интересно, а запросы надо переписывать.

сжать и восстановить мне не помогает, можете попробовать вы - авось вам удасться
а вообще, думаю, глюк это. забростье это всё.

всем спасибо
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32714642
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень рекомендую выложить различающиеся результаты запросов (а можно просто ключевое поле) в две разных таблицы и посмотреть на записи, которые не попадают куда нужно. Пройтись по ним глазами и посмотреть, где может падать проверка.
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32717555
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
маякочень рекомендую выложить различающиеся результаты запросов (а можно просто ключевое поле) в две разных таблицы и посмотреть на записи, которые не попадают куда нужно. Пройтись по ним глазами и посмотреть, где может падать проверка.
дело в том, что запрос-то один. Выше я описал, какие именно и когда возникают различия в числе записей

однако, я нашёл рациональное зерно в том, что Вы рекомендуете.

в одну и ту же таблицу я поместил результаты выполнения Объединение абсолютное и запроса противоположного даному. в результате, по закону сохранения материи должны были получится те же записи, что есть в исходной таблице. Однако этого не вышло. Точнее, вышло, но не совсем. Их было меньше на около 60.

Выбрав те, которых нехватало, в отдельную таблицу, я таки прошёлся по ним глазами и посмотрел, где может падать проверка .
Оказалось, что часть из них имеет в одном и том же поле (текстовом) нестандартные символы: ®, °, • и некоторые другие.
Заменив их на *, кол-во исчезнувших записей уменьшилось до 35
Стало быть собака частично порылась именно тут.
Вопрос: У Accessa что есть какие-то символы из юникода, с которыми он не работает? В таком случае, так бы и сказал, а то показывает, поиском ищет, а в запросах - чудеса. Или я чего-то не понял?
Дальше, я обратил внимание, что оставшиеся "выпавшие" записи всё в том же поле имеею большой размер: от 202 до 255. При этом ограничение размера поля стоит 255. Я попробовал уменьшить макс. размер до 250 (конечно, мне записи в этом поле обрезало) и вуаля - проблемный записей стало ещё на 10 меньше... Дальше продолжать эксперимент не могу, надо сохранить длину поля хотя бы такой.
Вопрос: А что у Accessa есть какое-то ограничение по длине поля, о котором я не знаю? Проблема опять таки видна только через запрос: все длинные записи видно и они нормально ищутся поиском... Что делать?
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32717676
мдя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hypers Вопрос: У Accessa что есть какие-то символы из юникода, с которыми он не работает? В таком случае, так бы и сказал, а то показывает, поиском ищет, а в запросах - чудеса. Или я чего-то не понял?
Дальше, я обратил внимание, что оставшиеся "выпавшие" записи всё в том же поле имеею большой размер: от 202 до 255. При этом ограничение размера поля стоит 255. Я попробовал уменьшить макс. размер до 250 (конечно, мне записи в этом поле обрезало) и вуаля - проблемный записей стало ещё на 10 меньше... Дальше продолжать эксперимент не могу, надо сохранить длину поля хотя бы такой.
Вопрос: А что у Accessa есть какое-то ограничение по длине поля, о котором я не знаю? Проблема опять таки видна только через запрос: все длинные записи видно и они нормально ищутся поиском... Что делать?


Ответ: у джета есть масса глюков. это не первый из найденых, но, видимо и не последний. И попробуйте поиграться с сортировкой (CollatingOrder) для полей. Увидите еще много интересного. В Вашем случае можно попробовать заменить тип полей на "Двоичный".
...
Рейтинг: 0 / 0
Теряются записи при создании таблицы запросом!
    #32718088
hypers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Теряются записи при создании таблицы запросом!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]