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

Выделение цветом определенной ячейки

28.02.2012, 15:30. Показов 18174. Ответов 113
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реально ли сделать так, что при нажатии на определенную кнопку на форме - в таблице определенное значение выделялось красным цветом? не все поле в данной графе, а только определенное поле !?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.02.2012, 15:30
Ответы с готовыми решениями:

Как в файле access сделать выделение цветом ячейки
Добрый день. Подскажите, как можно сделать чтобы ячейка (вся строка или одна ячейка) выделялась цветом при смене значения. Например заявка...

Выделение записей цветом
Добрый день! Прочел аналогичную тему, но решил создать свою, чтобы избежать путаницы. На форме есть таблица, в которой организован...

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

113
 Аватар для Ameli
2096 / 1172 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
28.02.2012, 17:17
Можно даже не при нажатии кнопки, а при принятии полем определенного значения, используйте условное форматирование.
Если все же при нажатии кнопки, то можно написать несложную процедурку обработки на событие Нажатие кнопки, вроде такой:
Visual Basic
1
If [Название поля] = "Нужное значение" Then [Название поля].BackColor = "Код цвета" Else [Название поля].BackColor = "Код цвета"
1
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
29.02.2012, 02:08
alenka012, форма ленточная?
0
3 / 3 / 0
Регистрация: 10.10.2009
Сообщений: 92
29.02.2012, 12:02  [ТС]
Цитата Сообщение от alvk Посмотреть сообщение
alenka012, форма ленточная?
нет. обычная форма, с 5 текстовыми полями. заносим туда данные, нажимаем кнопочку - они в таблице. начальнику приспичило, чтоб последнее поле на форме и собственно в таблице по желанию можно было выделить другим цветом
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
14.04.2017, 17:23
В ленточной форме есть поле "длительность", которое имеет краткий формат времени (00:00). Значение поле берет из запроса, где длительность считается путем вычисления начального времени из конечного.

Как выделить поле "00:00" красным цветом для условия, что значение поля другого столбца равно А?

Visual Basic
1
2
3
4
5
6
7
Private Sub Form_Current()
If Me.Длительность = "00:00" And Me.Значение = "А" Then
Me.Длительность.ForeColor = 255
Else
Me.ForeColor = 0
End If
End Sub
Если делать такое условие, то при открытии формы столбец длительности черный, когда нажимаю в поле 00:00 той строки, где выполняется условие Me.Значение = "А", весь столбец длительности становится красным. И при нажатии в другом месте весь столбец снова черный.
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
14.04.2017, 17:59
Используем условное форматирование. Можно вручную установить. А если хочется можно и программно. В коде на загрузке формы пишете
Visual Basic
1
2
3
4
5
6
7
8
With Me.Длительность
  'Удаляем предыдущие
  .FormatConditions.Delete
  'Выражение форматирования
  .FormatConditions.Add acExpression, , "Длительность = '00:00' And Значение = 'А'"
  'Изменение цвета ячейки
  .FormatConditions(0).ForeColor = rgb(255,0,0)
End With
1
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
17.04.2017, 10:25
Цитата Сообщение от mobile Посмотреть сообщение
А если хочется можно и программно. В коде на загрузке формы пишете
Спасибо!!!! То, что нужно!

Цитата Сообщение от mobile Посмотреть сообщение
Используем условное форматирование.
не поняла, как там задавать два условия для разных полей одновременно

Добавлено через 9 минут
И еще вопрос сюда же: а если я хочу всю конкретную (например с такими же условиями) строку выделить серым - как обратиться ко всей строке?
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
17.04.2017, 10:45
Цитата Сообщение от Angie Посмотреть сообщение
как там задавать два условия для разных полей одновременно
Для другого поля новый блок With Me.ДругоеПоле и все операции с ним. Для нескольких условий в одном поле добавлять нужное количество .FormatConditions.Add. Индекс их будет уже не 0, а 1, 2. И так далее

Цитата Сообщение от Angie Посмотреть сообщение
а если я хочу всю конкретную (например с такими же условиями) строку выделить серым - как обратиться ко всей строке?
Добавлять к каждому полю УФ... Но обычно, если у Вас ленточная форма, делают свободное прозрачное поле позади всех и меняют ему в УФ либо фон, либо, что мне больше нравится, цвет рамки. Можно поиграться с толщиной рамки, с цветом и добиться хорошего результата.
1
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
17.04.2017, 12:24
mobile, большое спасибо!!!
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
19.04.2017, 10:49
Еще вопрос аналогичный:

есть главная форма, в ней две подчиненные. На главной выбирается человек по ФИО, и для этого человека появляются данные в двух подчиненных формах.

Как правильно сделать УФ для поля во второй подчиненной форме с условиями из первой подчиненной?
Т.е. то же условие, что и было раньше, нужно использовать для поля в другой форме
Цитата Сообщение от mobile Посмотреть сообщение
Visual Basic
With Me.Длительность
'Удаляем предыдущие
.FormatConditions.Delete
'Выражение форматирования
.FormatConditions.Add acExpression, , "Длительность = '00:00' And Значение = 'А'"
'Изменение цвета ячейки
.FormatConditions(0).ForeColor = rgb(255,0,0)
End With
как правильно обратиться?.. Forms.фПодчиненная.Длительность = '00:00'..
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.04.2017, 11:27
Код в главной форме? Тогда так:
Visual Basic
1
.FormatConditions.Add acExpression, , "Длительность = '" & Me.фПодчиненная!Длительность & "' And Значение = 'А'"
Добавлено через 6 минут
Может быть неправильно понял и надо определить поле в подформе для УФ:
Visual Basic
1
2
3
4
5
With Me.фПодчиненная!Длительность
..................
.FormatConditions.Add acExpression, , "Длительность = '00:00' And Значение = 'А'"
..................
End With
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
19.04.2017, 11:59
Прикладываю схемку.
в фПодчин2 считается общая длительность из фПодчин1. Мне нужно, что если где-то в фПодчин1 есть 00:00 для значения А, то и общая длительность в фПодчин2 окрашивалась бы в красный цвет ( это означает, что данные не введены и общая длительность некорректна).

Т.е., есть два варианта - прописывать это из главной или из подчиненной?
Миниатюры
Выделение цветом определенной ячейки  
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
19.04.2017, 12:01
если прописывать из главной, тогда надо прописать и полный путь для условий и для поля, к которому хочу применить форматирование. А если из фПодчин2, то только путь к условиям из фПодчин1, так?
как тогда это прописать?
0
Эксперт MS Access
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
19.04.2017, 12:21
Пишем код в фПодчин2, используя свойство Parent для обращения к другой подформе
Visual Basic
1
2
3
4
5
6
With Me![Общая длительность]
........................................
.FormatConditions.Add acExpression, , "Form.Parent!фПодчин1!Длительность='00:00' " & _
" And Form.Parent!фПодчин1!Значение = 'А'"
........................................
End With
1
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
20.04.2017, 09:33
mobile, не работает.
А свойство Parent можно использовать для двух несвязанных подчиненных форм с общей главной формой?
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
26.04.2017, 11:51
Не понимаю, в другой форме тоже не работает.
Но здесь уже после выбора ФИО и года появляется фПодчин.
Если Значение =А и длит-ть 00:00, то 00:00 выделяется красным, тут все ок.

В примечании формы считается обща длительность за выбранный год. Нужно, чтобы если где-то есть время 00:00 для значения А, то общая длительность выделялась красным тоже.

Что может быть неверно?

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Form_Load()
With Me.ДлитРасчет
  .FormatConditions.Delete
  .FormatConditions.Add acExpression, , "ДлитРасчет = '00:00' And Значение = 'А'"
  .FormatConditions(0).ForeColor = RGB(255, 0, 0)
   End With
   
  With Me.ДлитОбщ
  .FormatConditions.Delete
  .FormatConditions.Add acExpression, , "ДлитРасчет = '00:00' And Значение = 'А'"
  .FormatConditions(0).ForeColor = RGB(255, 0, 0)
End With
End Sub
Миниатюры
Выделение цветом определенной ячейки  
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
04.05.2018, 10:31
Цитата Сообщение от mobile Посмотреть сообщение
Пишем код в фПодчин2, используя свойство Parent для обращения к другой подформе
Visual BasicВыделить код1

With Me![Общая длительность]
........................................
.FormatConditions.Add acExpression, , "Form.Parent!фПодчин1!Длительность='00:0 0' " & _
" And Form.Parent!фПодчин1!Значение = 'А'"
........................................
End With
mobile, Возвращаясь к проблеме.. Не подскажете, где можно искать ошибку? Делаю базу с нуля, с одинаковыми формами, полями, запросами - работает, пробую это же в реальной базе - нет. Отличие баз только в том, что реальная наворочена гораздо сильнее, то есть там больше таблиц, форм и так далее.
1
Эксперт MS Access
 Аватар для Eugene-LS
12064 / 5847 / 1494
Регистрация: 05.10.2016
Сообщений: 16,435
04.05.2018, 15:20
Цитата Сообщение от Angie Посмотреть сообщение
Пишем код в фПодчин2, используя свойство Parent для обращения к другой подформе
Всё красиво!
Но зачем употреблять With - ради сокращения одной строки.
Тут можно было и короче, на мой скромный вкус.
0
Sk
6 / 6 / 1
Регистрация: 10.03.2016
Сообщений: 304
04.05.2018, 15:47
Eugene-LS, а расскажете, как?)
0
Эксперт MS Access
 Аватар для Eugene-LS
12064 / 5847 / 1494
Регистрация: 05.10.2016
Сообщений: 16,435
04.05.2018, 16:22
Цитата Сообщение от Angie Посмотреть сообщение
а расскажете, как?)
Написал выше:
- "зачем употреблять With - ради сокращения одной строки." ...
Всё понятно, более идей не имею.
Это не критично. Работает - и ладно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2018, 16:22
Помогаю со студенческими работами здесь

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

Выделение определеннной записи цветом
Доброго времени суток. Помогите, пожалуйста, с решением проблемы. В таблице базы данных есть следующие поля: "наименование...

Выделение цветом строк в форме
Доброе утро! Подскажите, пожалуйста., как реализовать. При открытии формы если значение каких то строк есть в запросе то в данных...

Выделение в списке другим цветом
никто не подскажет в принципе можно в поле со списком изменить цвет строки выделения? По умолчанию -черный.

Выделение цветом строк в списке
В форме есть список, отображающий данные с 3х таблиц. Как "прикрутить" в access'e, что бы можно было выделять строки в этом списке цветом?...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru