-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Как удалить выделенную строку подтаблицы

Среда, 10 Октября 2018 г. 18:37 + в цитатник
добрый день, форумчане.

прошу подсказать, уткнулся вроде в простую проблему, но что-то не могу сообразить как сделать

Суть такова:
1. Есть форма с n-нным количеством записей
2. В ней есть подтаблица, связана с основной таблицей по [коду базовой записи], то есть при переходах по базовым записям в подтаблице отражаются подзаписи каждой записи основной формы
3. Записи подтаблицы в качестве ключа используют счетчик 1,2,3 и т.д. В подтаблице есть несколько полей: [счетчик], [код базовой записи], [собственное имя записи], [параметр 1], [параметр 2]. Для связки с базовой записью используется поле [код базовой записи]
4. Все элементы управления подтаблицы скрыты, добавление новых записей (строк) осуществляется через кнопку "добавить" (типа как в 1С-ке), при нажатии с формы получается [код базовой записи] текущей записи и в подтаблицу посредством INSERT INTO добавляется новая запись, в которой автоматически прописывается счетчик и код базовой записи. Например,

[счетчик], [код базовой записи], [собственное имя записи], [параметр 1], [параметр 2]
001, 002, маша, 12, 14
002, 002, вася, 15, 20
003, 003, маша, 18,25
004, 003, петя, 14, 87

Соответственно, при выборе в главной форме записи 002 в подчиненной таблице будут отображаться записи
[счетчик], [код базовой записи], [собственное имя записи], [параметр 1], [параметр 2]
001, 002, маша, 12, 14
002, 002, вася, 15, 20

5. Для удаления записей в подчиненной таблице на форме есть кнопка "удалить запись", тоже типа как в 1С. При нажатии на нее система должна взять текущую запись (выделенную запись) подтаблицы и посредством SQL Delete или ADODB Delete удалить данную запись из подчиненной таблицы, потом обновить запрос. Сложностей никаких, но не пойму как однозначно идентифицировать запись. Поясню о чем речь, например, при добавлении 3 раза щелкнули "+" (добавить запись) и в подчиненной таблице возникли следующие записи.
[счетчик], [код базовой записи], [собственное имя записи], [параметр 1], [параметр 2]
001, 002, маша, 12, 14
002, 002, вася, 15, 20
003, 002, 0, 0, 0
004, 002, 0, 0, 0
005, 002, 0, 0, 0

то есть поля [собственное имя], [параметр 1] и [параметр 2] пользователь еще не успел запомнить, но потом понял, что из всех трех добавленных ему нужна только 1 надпись. Остальные две надо удалить.

В случае записей 003, 004, 005 они различаются только уникальным ключом-счетчиком, все остальные данные у всех записей одинаковые. Поле ключа-счетчика подчиненной таблицы в основной форме нигде не числится, то есть получить его значение неоткуда, кроме как напрямую обратиться к таблице. Чтобы обратиться напрямую к таблице и получить значение ключа-счетчика необходимо как-то однозначно идентифицировать надпись на которой стоит курсор. Это можно сделать через СurrentКecord подчиненной таблицы, например, курсор стоит на надписи 003, соответственно получаем номер 3 и в теории можем найти в подчиненной таблице этот номер 3 и удалить эту строку, НО, т.к. у нас есть связка по [код базовой записи], то номер 3 в подчиненной таблице с отбором по основной записи не будет равен номеру 3 в подчиненной таблице без отборов (со всеми записями), в которой, например, 20 записей и этот номер 3 в общем кол-ве записей равен номеру 10, соответственно, так идентифицировать запись в подчиненной таблице без отбора не получается.

Чтобы обратиться в подчиненную таблицу и найти надпись по полю [счетчик] надо как-то получить значение этого поля счетчик из подчиненной таблицы. В чем собственно и подзатупил, каким образом обратится к подчиненной таблице и получить значение поля [счетчик] той стройки, которая сейчас выделена в подчиненной форме-таблице (то есть на которой в данный момент стоит курсор).

p.s. В качестве подчиненной формы используется сама подчиненная таблица, то есть в окне подчиненной формы отражается непосредственно сама таблицы с записями, но с отбором-связкой [код базовой записи]

Буду признателен за наводку куда "покопать".

Заранее спасибо

http://www.sql.ru/forum/1303722/kak-udalit-vydelennuu-stroku-podtablicy


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку