Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перемещение записи 
:(
    Опции темы
Aleksandra
  Дата 16.4.2008, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Здравствуйте...

Не могу решить следующую задачу:

Имеется Главная Ленточная форма frmRazdely для выбора разделов. На этой форме frmRazdely имеется другая ленточная подформа p_frmBook для выбора записей выбранного раздела.
В ленточной подформе имеется Чекбокс CheckZapisi и кнопка "Переместить".

Задача с помощью Чекбокса и кнопки реализовать перемещение записи из одного раздела в другой. 
Перемещение происходит в одной таблице и по существу сводится к изменению номера рздела конкретной записи.
Чекбоксом выбираем запись в одном разделе и затем переходим в раздел, в который запись должна переместится и отмечаем Чекбокс на новой записи. Затем кнопкой "Переместить" выполняется нужная процедура. При этом в разделе из которого запись была перемещена должен произойти пересмотр номеров записей в этом разделе.

Спасибо...





Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  dbc.rar 43,45 Kb
PM   Вверх
bopoha
Дата 17.4.2008, 23:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



В чем именно проблема?
PM MAIL WWW ICQ Skype GTalk   Вверх
Aleksandra
Дата 18.4.2008, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Цитата(bopoha @ 17.4.2008,  23:46)
В чем именно проблема?

Как в чем? Проблема ведь описана...
PM   Вверх
bopoha
Дата 18.4.2008, 15:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Описание напоминает ТЗ. Нет предложения с вопросительным знаком. Вы предлагаете это написать за Вас? 
Или всетаки ответить на какой-то конкретный вопрос как?
PM MAIL WWW ICQ Skype GTalk   Вверх
Aleksandra
  Дата 18.4.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Цитата(bopoha @ 18.4.2008,  15:16)
Нет предложения с вопросительным знаком.

Я написала, что "Не могу решить следующую задачу:"

Если можете помочь, помогите, если нет, то зачем все эти разбирательства?

Спасибо...

С уважением, Александра
PM   Вверх
Fortop
Дата 18.4.2008, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Aleksandra @  18.4.2008,  15:21 Найти цитируемый пост)
написала, что "Не могу решить следующую задачу:"
Если можете помочь, помогите, если нет, то зачем все эти разбирательства?



Aleksandra, пожалуйста.
Но центр помощи находится в другом месте. Если есть конкретная проблема с решением задачи - с удовольствием подскажем и поможем.
Тем не менее пока ты не озвучила в чем именно сложности у тебя при решении этой задачи. Какое из всех описаных действий ты не можешь совершить?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Aleksandra
Дата 18.4.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Цитата(Fortop @ 18.4.2008,  15:54)
Какое из всех описаных действий ты не можешь совершить?

Не знаю как сделать пересмотр номеров записей в разделах после переноса записи из одного раздела в другой.


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  dbc.zip 58,66 Kb
PM   Вверх
Fortop
Дата 18.4.2008, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Вариант 1.
Скриптом, сначала выбрать все номера записей оставшихся в текущем отделе, а затем их перенумеровать добровольно-принудительно.

Т.е. что-то вроде

Код

SELECT [№п.п.], COUNT([№п.п.]) AS COUNTITEMS FROM tblBook WHERE IDRazd = нужный раздел GROUP BY [№п.п.]


затем

Код

FOR I=1 TO COUNTITEMS
    UPDATE tblBook SET [№п.п.] = I WHERE IDRazd = нужный раздел AND [№п.п.] = предыдущий номер
NEXT


Правильный синтаксис и опущенные операторы, я думаю, сделаешь smile



Вариант 2.
Если на чистом SQL, то выбираем данные во временную таблицу, где поле [№п.п.] у нас типа Счетчик
Код

SELECT список полей кроме [№п.п.] INTO temptable FROM tblBook WHERE IDRazd = нужный раздел 


затем удаляем записи из tblBook по этому разделу.
Код

DELETE список полей кроме [№п.п.] FROM tblBook WHERE IDRazd = нужный раздел 


и вставляем записи из временной таблицы назад в tblBook
Код

INSERT INTO tblBook список полей всех! SELECT * FROM temptable


ну и наконец удаляем данные во временной таблице

Код

DELETE FROM temptable WHERE 1=1




Это сообщение отредактировал(а) Fortop - 18.4.2008, 16:46


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Aleksandra
Дата 18.4.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Спасибо...
Буду разбираться...
PM   Вверх
Fortop
Дата 18.4.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Aleksandra, 
Да и такой момент, в базе, что выложила, у тебя не уникальный [№п.п.] в пределах одного раздела.  Если это уже рабочий вариант базы, то
 в первом варианте тебе надо будет в GROUP BY добавить еще поля и соответственно усложнить UPDATE - иначе работать корректно не будет.

Это сообщение отредактировал(а) Fortop - 18.4.2008, 16:58


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Akina
Дата 18.4.2008, 22:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Aleksandra @  18.4.2008,  17:18 Найти цитируемый пост)
как сделать пересмотр номеров записей в разделах после переноса записи из одного раздела в другой

На самом деле основной вопрос - не КАК, а ЗАЧЕМ. И боюсь, что вот тут вменяемого ответа мы не услышим.
Примечание: ерунды типа "надо по порядку без пропусков" просьба не произносить.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Aleksandra
Дата 19.4.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Цитата(Akina @ 18.4.2008,  22:51)
На самом деле основной вопрос - не КАК, а ЗАЧЕМ. И боюсь, что вот тут вменяемого ответа мы не услышим.
Примечание: ерунды типа "надо по порядку без пропусков" просьба не произносить.

Для меня основной вопрос "КАК" smile

Но еще важно, чтобы не повторялись номера в разделе, так как у меня возникает в этом случае ошибка с другим кодом, который у меня имеется на этой форме...
PM   Вверх
Akina
Дата 19.4.2008, 10:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(Aleksandra @  19.4.2008,  10:59 Найти цитируемый пост)
Для меня основной вопрос "КАК"

ТО есть Вы так и намерены оставаться в рамках абы как спроектированной базы? ведь порядковые номера должны не храниться в таблицах, а рассчитываться вьювом (запросом) в момент, когда они нужны. Это гарантирует сразу и пересчет, и непрерывность, и отсутствие дублирования, и актуальность. Но если есть желание продолжать искать приключений... ну используйте то, что подсказал Fortop, или поищите соответствующие темы по форуму - вопрос (пере)нумерации записей в запросах всплывает постоянно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Aleksandra
Дата 19.4.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 1.7.2006

Репутация: нет
Всего: нет



Спасибо за помощь...
PM   Вверх
Fortop
Дата 19.4.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Aleksandra, послушай все таки 
Akina дело говорит.
Как минимум - заведи для каждой записи отдельный ID, который не будет никогда меняться при переездах между разделами.
А нумерацию внутри раздела - действительно лучше делать при запросе данных. Так правильнее.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0607 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.