Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2013, 21:28   #1
vitaverde
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 10
По умолчанию Двойные значения

Всем доброго времени, Опрос на наличие я воде бы освоил, на поиск двойников тож не проблема, это всё в стандартных опросах есть. Вот теперь встала проблема . Надо пробежаться по полю, найти двойников, и второе (или если есть 3-е) значение удалить, причём удалить всю строку, предварительно скопировав в другую таблицу. Вроде просто, но вот для бронепоезда не под силу пока, мож разберусь со временем. Заранее спасибо.
vitaverde вне форума Ответить с цитированием
Старый 21.02.2013, 09:31   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вижу, что ответов нет...
поэтому попытаюсь хоть чем-то помочь...

во-первых, где пример таблицы? (и далеко не всё однозначно, кого считать двойником)

во-вторых, что конкретно не получается, где перебор таблицы? На какое событие Вы хотите повесить обработку? На кнопку? Так начните с того, что поместите кнопку и назначьте ей обработчик.

в-третьих, в какую таблицу и, главное, ЗАЧЕМ, Вам сохранять удаляемые строки?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.02.2013, 02:08   #3
vitaverde
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 10
По умолчанию

Ой как класно, кто то есть живой, спасибо за пояснения, постараюсь всё объяснить. Сразу скажу что с кнопками я не умею, ещё не вошебник, путём долгих проб и ошибок был создан опрос "UPDATE Tab2 INNER JOIN [Tab1] ON Tab2.Feld11 = [Tab1].Feld6 SET Tab2.Feld4 = [Tab1].Feld4
WHERE ((([Tab1].Feld4)<>[Tab2].[Feld4]));" где feld это поле, Tab1-2 название таблиц, исходник и то что должно получиться. В данном случае происходит изменение количества, по EAN. Для того чтоб не рытся пару лет в таблице в поиске двойных значений EAN, ну и соответственно того что к нему привязано, хотелось-бы создать "опрос" который всё это сделает за секунды "SELECT First([Tab2].[Feld2]) AS [Feld2 Feld], Count([Tab2].[Feld2]) AS AnzahlVonDuplikaten
FROM [Tab2]
GROUP BY [Tab2].[Feld2]
HAVING (((Count([Tab2].[Feld2]))>1));"
в данном случае опрос переписывает таблицу на саму себя, оставляя 2 поля, с EAN и количеством дубликатов, т.к. в нек. случаях их доходит до 5, ошибки в переписывании таблиц. Ну и не много о моём умении пользоваться Access; на уровне колхозного самовара, даже не чайника; таблицы ввожу методом импорта, (вернее одну таб., исходник с новым количеством) опрос сохранён в аксесе, два раза на левую мышь, и всё готово. Ну потом экспорт полученой таблицы как текст. файлик. Заранее Спасибо за помощь. Образец таблицы, прикрепил. EAN это второе поле
PS скопировать двойные в отдельную таблицу было бы не плохо для дальнейшей отчистки мусора с сервера, их там тож не меньше, только с разными атрибутами, а с помощью таблицы ошибок их можно стереть по быстрому
Вложения
Тип файла: rar Probe Loader.rar (151.0 Кб, 10 просмотров)

Последний раз редактировалось vitaverde; 22.02.2013 в 02:20. Причина: ошибка
vitaverde вне форума Ответить с цитированием
Старый 22.02.2013, 22:57   #4
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Без файла базы данных - тяжело...

0. СДЕЛАЙТЕ КОПИЮ БАЗЫ!!!

1. Добавьте в таблицу поле "Номер" типа счётчик.
2. Пусть Ваш запрос, который ищет повторяющиеся записи, называется "ЗапросПовторовДанные". Создайте запрос "ЗапросПовторовНомера" путём объединения таблицы с данными и "ЗапросПовторовДанные" с тем, чтобы вывести значения поля "Номер" для повторяющихся данных.
3. В пределах каждой группы повторяющихся записей в "ЗапросПовторовНомера" найдите минимальные значения поля "Номер" (групповые операции, функция Min) - "ЗапросПовторовНомераMin".
4. Объедините "ЗапросПовторовНомера" с "ЗапросПовторовНомераMin" так, чтобы узнать номера всех повторяющихся записей, кроме записей из "ЗапросПовторовНомераMin" и запишите их в таблицу дубликатов (запрос на добавление записей) - "ЗапросПовторовУдалить".
5. Используя подчинённый запрос и предложение IN в поле "Условие отбора" в конструкторе запроса:

IN (SELECT Номер FROM ЗапросПовторовУдалить)

отберите из таблицы с данными только уже сохранённые дубликаты и преобразуйте этот запрос в запрос на удаление.

Не забудьте выполнить пункт №0.
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 27.02.2013, 01:05   #5
vitaverde
Пользователь
 
Регистрация: 18.02.2013
Сообщений: 10
По умолчанию

Казан кипит, но попробую, спасибо. База данных это .accdb файл?? Попробую соэдам, и если совсем тяжко будет прийду снова. Спасибо.
ЗЫ Вот только не знаю, у Вас русский офис, могут проблемки возникнуть с немецким, с ангельским нет, а вот немцы... они противные

Последний раз редактировалось vitaverde; 27.02.2013 в 01:09.
vitaverde вне форума Ответить с цитированием
Старый 27.02.2013, 01:28   #6
Myhaylo
Форумчанин
 
Регистрация: 19.07.2012
Сообщений: 520
По умолчанию

Да, accdb - это файл базы данных.
Окупант, руки прочь от Украины!!! Слава Героям!
Myhaylo вне форума Ответить с цитированием
Старый 28.02.2013, 09:44   #7
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Нет - файл базы данных mdb
alvk вне форума Ответить с цитированием
Старый 28.02.2013, 10:53   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
База данных это .accdb файл??
Цитата:
Сообщение от alvk Посмотреть сообщение
Нет
alvk, Вы ошибаетесь!

и то, что mdb - формат БД для MS Access версии 2003 (и ниже), совершенно не исключает того, чо accdb - это файл БД для MS Access более старших версий!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2013, 11:11   #9
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Цитата:
Сообщение от vitaverde Посмотреть сообщение
Казан кипит ... База данных это .accdb файл??
Реляционная база данных - это любая таблица (или несколько связанных либо несвязанных таблиц), даже на бумаге. В электронном виде это может быть как .mdb, accdb, так и .xls, .txt и куча других форматов (расширений), данные в которых упорядочены особым - табличным образом...
Андрэич вне форума Ответить с цитированием
Старый 01.03.2013, 02:17   #10
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
alvk, Вы ошибаетесь!

и то, что mdb - формат БД для MS Access версии 2003 (и ниже), совершенно не исключает того, чо accdb - это файл БД для MS Access более старших версий!
Я не ошибаюсь - я шучу. Именно поэтому смайлик и нарисовал. А также тонко намекаю на то, что лучше выкладывать пример в mdb.
alvk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двойные интегралы Sanlex Помощь студентам 0 29.12.2012 01:38
Двойные интегралы cudri Помощь студентам 3 15.12.2011 21:43
двойные пробелы dronchik2010 Помощь студентам 0 11.12.2011 12:48
C++ Двойные массивы KrivieRuki Помощь студентам 5 26.10.2011 07:09
Двойные темы Ulex О форуме и сайтах клуба 1 23.12.2008 00:59