Сверка данных из двух Таблиц.
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Сверка данных из двух Таблиц. Expand / Collapse
Автор
Сообщение
12.04.2007 20:31
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.04.2007 11:52
Сообщ.: 9, Visits: 173
Вопрос у меня такой.
Есть две таблицы(тест1 и Тест2),в них два столбца QUEST и B1.
Так вот требуется сверить все эти данные .Если QUEST и B1 в таблицах тест1 и Тест2
совподают удалить из таблицы Тест1 одинаковые вопросы.Т.е каждую строку в столбцах QUEST и B1
сверить с таблицей Тест1 ,и удалить их из Тест2.????Незнаю понятно ли я обьяснил...
Сообщ. #912415
12.04.2007 21:56
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
Удаление из таблицы Test1 записей совпадающих с записями таблицы Test2
DELETE * FROM Test1 WHERE ([QUEST] & Chr(0) & [B1]) IN (SELECT ([QUEST] & Chr(0) & [B1]) FROM Test2);
Сообщ. #912417
13.04.2007 10:50
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.04.2007 11:52
Сообщ.: 9, Visits: 173
На пустой базе которую сам сделал все отлично работает, но на базе которая мне нужеа выдает ошибку(Ошибочное поле Memo,объектаOLE или Объекта гиперссылки в подчиненном запросе '[QUEST] & Chr(0) & [B1]')
Посмотрите пожалуста я базу эту выложу...


  Post Attachments 
Филос.rar (3 views, 69,28 KB)
Сообщ. #912420
13.04.2007 13:39
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
В тестовой базе у Вас поля QUEST и B1 были, наверное, текстовые , а в реальной, которую выложили, - Memo. Поэтому пробуйте так:
DELETE * FROM Test1 WHERE (CStr([QUEST]) & Chr(0) & CStr([B1])) IN (SELECT (CStr([QUEST]) & Chr(0) & CStr([B1])) FROM Test2)
Сообщ. #912425
13.04.2007 13:53
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 13.03.2008 11:35
Сообщ.: 839, Visits: 8 738
Вам же написали, что по полям Мемо сравнивать нельзя.
Создайте запрос ЗапросTest1:

SELECT Test1.№QUEST, Format([QUEST]) AS Q1, Format([B1]) AS B1_ FROM Test1;

и запрос ЗапросTest2:

SELECT Test2.№QUEST, Format([QUEST]) AS Q2, Format([B2]) AS B2_ FROM Test2;

А затем их и объединяйте.
Кстати, у Вас нет одинаковых значений...
Сообщ. #912426
13.04.2007 15:04
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.04.2007 11:52
Сообщ.: 9, Visits: 173
Спасибо за помощь. Я просто поменял тип поля на текстовый -работает ,только пишет что некоторые данные могут потерятся.что там может потерятся?
Сообщ. #912436
13.04.2007 15:29
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
maliardo (13.04.2007)
Спасибо за помощь. Я просто поменял тип поля на текстовый -работает ,только пишет что некоторые данные могут потерятся.что там может потерятся?

Длина текстового поля не может быть более 255 символов, а поля Memo - 65535. Поэтому при преобразовании поля Memo в текстовое поле длиной n в последнее помещаются n левых символов из Memo, а остальные правые теряются.
А что, вариант с функцией CStr не сработал?
Сообщ. #912437
13.04.2007 19:37
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 19.04.2007 11:52
Сообщ.: 9, Visits: 173
BoNiM (13.04.2007)
maliardo (13.04.2007)
Спасибо за помощь. Я просто поменял тип поля на текстовый -работает ,только пишет что некоторые данные могут потерятся.что там может потерятся?

Длина текстового поля не может быть более 255 символов, а поля Memo - 65535. Поэтому при преобразовании поля Memo в текстовое поле длиной n в последнее помещаются n левых символов из Memo, а остальные правые теряются.
А что, вариант с функцией CStr не сработал?

1)Функция Сstr работает но вылезла друга проблема ,в некторых столбцах B1 нет данных ,из -за этого выводит ошибку "недопустимое использование NULL"?
2)И еще такой вопрос оказалось ,что такой проверке между двумя таблицами недостаточен,необходимо сделать это еще и в каждой по отдельности т.е в самих находить одинаковые вопросответ.
p.s скажите я знаю ,что в столбцах B1_O находятся \Рисунок или формула к вопросу (объект OLE)\
но при попытке их открыть вылезает ошибка Активекс ,как их просмотреть?
посоветуйте книгу ...
Сообщ. #912450
14.04.2007 13:11