![]() |
|
Модераторы: Akina |
![]()
|
|
| DelphianOracle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
У меня есть форма, не привязаная к таблице. На форме есть список (List) в котором отображается одна таблица. Мне надо по нажатию на кнопку копировать или переместить выбранную строчку в другую таблицу. Как это сделать?
MSDN не помогает... :( |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
У контрола есть свойство ItemsSelected. Это коллекция выделенных в данный момент записей. Можно обработать ее - для каждой записи коллекции получить значение ключа и выполнить запрос, который скопирует или переместит запись с этим ключом в требуемую таблицу. После чего, если выполнялось перемещение, нужно перезапросить источник данных контрола.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| DelphianOracle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Уважаемый Akina, я работаю с Access второй раз в жизни, так что пожалуйста, объясните попопулярнее...
Как создать такой запрос и передать ему входной параметр? |
|||
|
||||
| FINANSIST |
|
|||
|
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 1 Всего: 23 |
Так копировать или переместить?
И что именно, только выбранное значение в листбоксе, или всю запись ( а может быть все записи) с полным набором аналитик, имеющим в качестве отборочного признака значение листбокс??? -------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
|||
|
||||
| DelphianOracle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Копировать, а затем изменить и то что копировалось, и то, что получилось. И всю запись.
у меня примерно вот что: гвозди | 21 шт | что-нить еще... нажимаю кнопку "списать" например, 10 шт. Должно получиться: гвозди | 11 шт | что-нить еще... И в другой таблице гвозди | 10 шт | что-нить еще... Я сделал копирование через запрос на добавление. Теперь мне надо разобраться с количеством... Если можно, помогите... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Сделайте еще и запрос на обновление. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| DelphianOracle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Запрос на обновление... на обновление чего?
Добавленая запись будет последней, но как узнать ее номер? А можно как-нибудь напрямую из VBA обратиться к таблице для изменения? И, кстати, можно ли как-нибудь объявить переменную, которая виделась бы из построителя выражений для запросов? |
|||
|
||||
| Palarm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 22.4.2008 Репутация: нет Всего: нет |
В сохраненном запросе нельзя ссылаться на переменную, но можно ссылаться на функцию, возвращающую результат. Для этого она должна находиться в общем модуле. Тогда в конструкторе запросов можно подставить вызов функции (она станет там видна в списке «Функции»). То есть: WHERE Таблица _1.Поле_1= myFun() Если запрос собирается в VBA, то аналогично ссылке на поле формы в условиях отбора прописать ссылку на переменную. "WHERE Таблица _1.Поле_1=" & myVar если переменная текстовая, тогда нужно оградить ее одинарными апострофами "WHERE Таблица _1.Поле_1='" & myVar & "'" |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Я бы формировал бы запрос с параметрами, так надежней и сопровождаемо. Или накрайний случай запрос в коде:
CurrentDb.Execute "INSERT INTO .... SELECT ... FROM .... WHERE ..." CurrentDb.Execute "UPDATE .... SET .... WHERE .. " |
|||
|
||||
| DelphianOracle |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.5.2007 Репутация: нет Всего: нет |
Я сделал все на VBA, через Connection и Recordset. С запросами так и не разобрался ;). В любом случае задача решена, тему можно закрывать.
|
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |