Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 23.10.2015
Сообщений: 86
1

Обновление зависимых списков в табличной форме

01.05.2024, 22:54. Показов 1205. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Смотрел тему Как правильно обновить данные поля со списком при переходе по записям?.
Похожая задача, надеюсь кто-то сможет помочь.
В табличной форме есть два поля со списками. После изменения одного поля, по событию "после обновления", обновляется список данных другого поля, построенного на основе запроса с фильтром по первому полю. И всё бы хорошо, но обновление происходит не в отдельно взятой строке, а во всём столбце.
Подскажите, пожалуйста, как обновить поле только в одной строке?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2024, 22:54
Ответы с готовыми решениями:

Вывод зависимых списков в форме
Добрый день, форумчане! Я только начинаю изучать Access2013. У меня есть БД автомобилей, На форме 2...

Создание зависимых выпадающих списков в форме
Всем добрый день! Есть база в ней привязал виды фруктов к продукту. Далее создал форму,на...

Копирование данных из ячейки одной Табличной Части на форме в такую же ячейку другой Табличной части на этой же форме
Всех с Новым годом и грядущим Рождеством пособите начинающему: затык такой - НА форме есть две...

Кастомизация зависимых списков select
На странице есть зависимые списки, реализованные через select + ajax + php. То есть в зависимости...

Автоматическое заполнение зависимых списков
Всем добрый день. Помогите, пожалуйста, решить задачу в excel. В одной ячейке можно выбирать...

25
Эксперт MS Access
17501 / 7260 / 1654
Регистрация: 21.06.2012
Сообщений: 13,899
02.05.2024, 00:18 2
Вариант для ввода новой записи в табличной форме во вложении (изучайте код).

Вложение
Вложения
Тип файла: zip Связанные_Списки_07.zip (83.9 Кб, 10 просмотров)
0
1 / 1 / 0
Регистрация: 23.10.2015
Сообщений: 86
02.05.2024, 11:46  [ТС] 3
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Вариант для ввода новой записи в табличной форме во вложении (изучайте код).
Увы, вариант не удачный.
Если я в верхней строке в поле первого столбца меняю значение, списки значений поля второго столбца обновляются во всех строках, а не в одной, только в той, где менялось значение.
0
Эксперт MS Access
17501 / 7260 / 1654
Регистрация: 21.06.2012
Сообщений: 13,899
02.05.2024, 12:33 4
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Вариант для ввода новой записи в табличной форме во вложении (изучайте код).
Цитата Сообщение от Michael_B Посмотреть сообщение
Если я в верхней строке в поле первого столбца меняю значение
Причем здесь первая строка - написано же - для ввода новой записи.
0
Эксперт MS Access
17501 / 7260 / 1654
Регистрация: 21.06.2012
Сообщений: 13,899
02.05.2024, 12:40 5
Лучший ответ Сообщение было отмечено Michael_B как решение

Решение

Если нужен не только для новой, то ... .
Вложения
Тип файла: zip Связанные_Списки_Без_Мерцания_006.zip (105.5 Кб, 14 просмотров)
1
1 / 1 / 0
Регистрация: 23.10.2015
Сообщений: 86
02.05.2024, 17:20  [ТС] 6
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Если нужен не только для новой, то ...
Спасибо!
Забавное решение...
Есть идеи по поводу его модернизации, если получится, обязательно сюда напишу.
0
Эксперт MS Access
7408 / 4544 / 295
Регистрация: 12.08.2011
Сообщений: 14,072
03.05.2024, 04:23 7
Цитата Сообщение от Michael_B Посмотреть сообщение
Увы, вариант не удачный.
Неудачно в табличной форме править данные напрямую, а не в отдельной одиночной для редактирования.
Которую удобно повесить на событие двойного щелчка по полю. А ещё такие поля подсветить цветом.
0
ᴁ®
Эксперт MS Access
3669 / 2022 / 429
Регистрация: 13.12.2016
Сообщений: 6,965
Записей в блоге: 5
03.05.2024, 09:19 8
Цитата Сообщение от Michael_B Посмотреть сообщение
но обновление происходит не в отдельно взятой строке, а во всём столбце.
очень странная хотелка. Добавить в список позицию, но чтобы она не применялась. Обычно наоборот, просят как обновить, чтобы новую позицию было видно во всех списках.
0
1 / 1 / 0
Регистрация: 23.10.2015
Сообщений: 86
03.05.2024, 17:02  [ТС] 9
Цитата Сообщение от alvk Посмотреть сообщение
Неудачно в табличной форме править данные напрямую
Пытаюсь сделать так, как мне кажется удобней, для пользователя, в интерфейсе моей программы.
Согласитесь, это уже вопрос эргономики такой, как каждый видит её лично.
Понятия "удачно" или "неудачно", в такой ситуации, не самые подходящие.

Добавлено через 1 минуту
Цитата Сообщение от АЕ Посмотреть сообщение
Обычно наоборот, просят как обновить, чтобы новую позицию было видно во всех списках.
А Вы, пожалуйста, посмотрите пример, который выложен Ltv_1953, и станет очевидно, что во всех строках обновление не нужно.

Добавлено через 4 минуты
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Если нужен не только для новой, то ...
Ещё раз, спасибо за интересное решение.
Работает не абсолютно так, как хотелось бы, но намного ближе к этому, чем любые мои попытки приблизиться.

Как и обещал, выкладываю небольшое изменение, которое, на мой взгляд, сделало Ваше решение чуть интересней.
Изменил запрос "Товары_Фирмы_Список1_" таким образом:
SQL
1
2
3
4
SELECT DISTINCT IIf([Выбран]=0,[Товар_Код],"") AS Выражение1, Товары_Фирмы_Список1.Выбран, IIf([Выбран]=0,[Товар_Обозначение],"") AS Выражение2
FROM Товары_Фирмы_Список1
WHERE (((Товары_Фирмы_Список1.Выбран)=0))
ORDER BY Товары_Фирмы_Список1.Выбран, IIf([Выбран]=0,[Товар_Обозначение],"");
0
ᴁ®
Эксперт MS Access
3669 / 2022 / 429
Регистрация: 13.12.2016
Сообщений: 6,965
Записей в блоге: 5
03.05.2024, 20:11 10
Michael_B, много эмоций, свою базу засекретили, цель не объяснена, претензий много, совершенствуете примеры помогающих... я вас не трону и меня не поминайте в суе.
0
Эксперт MS Access
7408 / 4544 / 295
Регистрация: 12.08.2011
Сообщений: 14,072
04.05.2024, 15:07 11
Цитата Сообщение от Michael_B Посмотреть сообщение
Пытаюсь сделать так, как мне кажется удобней
Мне кажется удобней штаны через голову надевать.
Цитата Сообщение от Michael_B Посмотреть сообщение
Понятия "удачно" или "неудачно", в такой ситуации, не самые подходящие.
Как раз в случае удачного одевания я не сломаю шею. Так что подходящие.
0
1 / 1 / 0
Регистрация: 23.10.2015
Сообщений: 86
04.05.2024, 16:27  [ТС] 12
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Если нужен не только для новой, то ...
Подскажите, пожалуйста, не могу разобраться, в чём смысл запроса на объединение?
Убираю его, подставляю обычный на выборку, всё работает, как и работало... Что я упускаю из виду?
0
Модератор
Эксперт MS Access
6027 / 2852 / 695
Регистрация: 12.06.2016
Сообщений: 7,694
04.05.2024, 16:45 13
Цитата Сообщение от Michael_B Посмотреть сообщение
выкладываю небольшое изменение, которое, на мой взгляд, сделало Ваше решение чуть интересней
SQL
1
2
3
4
SELECT DISTINCT IIf([Выбран]=0,[Товар_Код],"") AS Выражение1, Товары_Фирмы_Список1.Выбран, IIf([Выбран]=0,[Товар_Обозначение],"") AS Выражение2
FROM Товары_Фирмы_Список1
WHERE (((Товары_Фирмы_Список1.Выбран)=0))
ORDER BY Товары_Фирмы_Список1.Выбран, IIf([Выбран]=0,[Товар_Обозначение],"");
???

Зачем здесь вот это всё?
IIf([Выбран]=0,...., IIf([Выбран]=0,....ORDER BY Товары_Фирмы_Список1.Выбран, IIf([Выбран]=0,...

Ведь условие WHERE (((Товары_Фирмы_Список1.Выбран)=0)) уже отбирает только "невыбранные" записи.
0
Модератор
Эксперт MS Access
6027 / 2852 / 695
Регистрация: 12.06.2016
Сообщений: 7,694
04.05.2024, 17:17 14
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Если нужен не только для новой, то ...
При смене Фирмы в уже заполненной записи в поле Товар остается прежнее значение, относящееся к прежнему значению поля Фирма.
Если Товар не трогать, он таким и останется - неверно привязанным к Фирме.
0
436 / 388 / 50
Регистрация: 06.03.2022
Сообщений: 2,055
04.05.2024, 19:41 15
Такой вариант. Предусмотреть обновление поля город перед обновлением улицы (для сохраненных записей. Если этого не сделать в поле улица может оказаться та,которой в этом городе нет-как это обеспечить-решение разработчика.):
Вложения
Тип файла: rar tmp.rar (19.1 Кб, 4 просмотров)
0
436 / 388 / 50
Регистрация: 06.03.2022
Сообщений: 2,055
04.05.2024, 19:53 16
Capi об этом и говорила
0
Эксперт MS Access
17501 / 7260 / 1654
Регистрация: 21.06.2012
Сообщений: 13,899
04.05.2024, 20:18 17
Цитата Сообщение от Capi Посмотреть сообщение
При смене Фирмы в уже заполненной записи в поле Товар остается прежнее значение, относящееся к прежнему значению поля Фирма.
Если Товар не трогать, он таким и останется - неверно привязанным к Фирме.
Вроде бы нет
Миниатюры
Обновление зависимых списков в табличной форме  
0
Модератор
Эксперт MS Access
6027 / 2852 / 695
Регистрация: 12.06.2016
Сообщений: 7,694
04.05.2024, 20:29 18
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Вроде бы нет
Это Вы стали как бы менять товар, выбирая то же самое значение.
Да, так и будет, выдаст такое сообщение.

Но после сброса этого MsgBox (хоть Escape'ом, хоть кнопкой OK) значение так и останется неизменным, то есть, не увязанным с Фирмой.
И можно просто уйти на другую запись без последствий.

А если после смены Фирмы вообще просто перейти на другую запись, то и сообщения этого не появится.
Цитата Сообщение от Capi Посмотреть сообщение
Если Товар не трогать, он таким и останется - неверно привязанным к Фирме.
0
Эксперт MS Access
17501 / 7260 / 1654
Регистрация: 21.06.2012
Сообщений: 13,899
04.05.2024, 20:45 19
А, понятно. Выложенная версия немного устарела. Попробуйте добавить в нее
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Me.Товар_Код.Column(1) <> 0 Then
        Call MsgBox("Выбранный товар не является товаром выбранной фирмы." _
               & vbCr & "Ввод отменен." _
            , vbOKOnly + vbExclamation, Me.Caption)
        Cancel = True
        Me.Undo
    End If
End Sub
0
Модератор
Эксперт MS Access
6027 / 2852 / 695
Регистрация: 12.06.2016
Сообщений: 7,694
04.05.2024, 20:56 20
Хорошо, попробую.
Но попозже.
Я сейчас не у компьютера.
0
04.05.2024, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2024, 20:56
Помогаю со студенческими работами здесь

Не срабатывает Nothing после выполнения зависимых списков
Выполняю зависимые списки следующим образом: Sub Razdel() Dim i As Long Set ShList =...

Настройка вывода в ссылку из зависимых списков с использованием кнопки
Добрый день. Ситуация следующая, были созданы два списка и установлена связь между первым и вторым...

Обновление полей в зависимых документах
1. Задача: есть документ (основной), к нему привязываются другие поддокументы (не ответные),...

Создание зависимых полей на форме
Всем доброго времени суток. Помогите пожалуйста. Нужно создать форму для определения стоимости...

Добавление данных в базу данных из зависимых списков
Сделала зависимые списки, в которых берутся данные из базы. Нужно, чтобы выбранные данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru