Как сделать цвет сетки в access

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

привет всем!
столкнулся с такой проблемой - можно ли в базе mdb отдельные ячейки или хотя бы строки выделять цветом? имеется ввиду, чтобы пользователь при работе с таблицей (отображение - DBGridEh), выделяет что-либо цветом (фон или текст в ячейках - не имеет значения) и это сохраняется в бд (база, как уже сказано, - mdb).
заранее спасибо.

Originally posted by Azaze1
привет всем!
столкнулся с такой проблемой - можно ли в базе mdb отдельные ячейки или хотя бы строки выделять цветом? имеется ввиду, чтобы пользователь при работе с таблицей (отображение - DBGridEh), выделяет что-либо цветом (фон или текст в ячейках - не имеет значения) и это сохраняется в бд (база, как уже сказано, - mdb).
заранее спасибо.


Можно, только "строки выделять цветом" это задача не базы Access, а визуальных компонентов типа TDBGrid.

Originally posted by Azaze1
привет всем!
столкнулся с такой проблемой - можно ли в базе mdb отдельные ячейки или хотя бы строки выделять цветом? имеется ввиду, чтобы пользователь при работе с таблицей (отображение - DBGridEh), выделяет что-либо цветом (фон или текст в ячейках - не имеет значения) и это сохраняется в бд (база, как уже сказано, - mdb).
заранее спасибо.


Можно.
Для этого у тебя в базе данных должна быть реализована структура таблиц, в которых будут хранится настройки цвета и т.д. для твоих ячеек(строк).
Или же каждое поле(строка) в таблице должно сопровождаться полем, в котором записан цвет ячейки.
Или должен быть параметр, в зависимости от которого, ячейки раскрашиваются.

Originally posted by kot_
Можно.
Для этого у тебя в базе данных должна быть реализована структура таблиц, в которых будут хранится настройки цвета и т.д. для твоих ячеек(строк).
Или же каждое поле(строка) в таблице должно сопровождаться полем, в котором записан цвет ячейки.

Originally posted by kot_

Или должен быть параметр, в зависимости от которого, ячейки раскрашиваются.


Все есть в Builder-e, надо только приложить руки:

Originally posted by GIZMO
Сааавсем заработался:)


Ну почему заработался - как я понял, камраду надо выделять цветом ячейки произвольно - в этом случае ему необходимо гдето это хранить.

Originally posted by kot_
Ну почему заработался - как я понял, камраду надо выделять цветом ячейки произвольно - в этом случае ему необходимо гдето это хранить.


всем пасиб )) правда, Gizmo, ты dynamic_cast слегка не так написал, но это в принципе не важно - главное идея )) данные о цвете так и пришлось хранить в отдельном поле для каждой строки.

Originally posted by Azaze1
всем пасиб )) правда, Gizmo, ты dynamic_cast слегка не так написал, но это в принципе не важно - главное идея )) данные о цвете так и пришлось хранить в отдельном поле для каждой строки.


Правда зачем хранить значение цвета в таблице я так и не врубился. Почему нельзя красить строку в зависимости от значения какого-либо поля?

Originally posted by GIZMO
Правда зачем хранить значение цвета в таблице я так и не врубился. Почему нельзя красить строку в зависимости от значения какого-либо поля?


Это все понятно - но что если цвет поля задается достаточно произвольно? Т.е. например юзер решил данную строку отметить выделением - и это выделение может находится в каком либо диапазоне - тебе все равно прийдется хранить значение. Если цвет связан с изменением статуса записи - тогда более правильно проверять значение - нефиг всякий мусор хранить в базе. А если это информативное выделение цветом - при этом статус объекта в базе не изменяется - тогда проще хранить цвет.
Хотя мне например кажется, что возможно, данная задача недостаточно тщательно спроектирована. Если пользователь что либо выделяет цветом - наверно это делается с какой нибудь целью. Т.е. возможно более "правильно" было бы введение т.н. "информационного статуса"+возможность для юзера назначать нужные цвета. А то так вполне можно получить весьма хрупкую базу, полную всякого мусора :). Или цветовые схемы - выносить ОТДЕЛЬНО от данных.

Originally posted by kot_
Хотя мне например кажется, что возможно, данная задача недостаточно тщательно спроектирована. Если пользователь что либо выделяет цветом - наверно это делается с какой нибудь целью. Т.е. возможно более "правильно" было бы введение т.н. "информационного статуса"+возможность для юзера назначать нужные цвета. А то так вполне можно получить весьма хрупкую базу, полную всякого мусора :). Или цветовые схемы - выносить ОТДЕЛЬНО от данных.


благо для данной задачи хватает одного цвета + выеделение надо делать именно по строкам. если вкратце - в таблице хранятся данные для объекта - например характеристики скважины по глубинам. На определённые глубины данных нет - они либо интерполируются (юзер пишет данные как среднее арифмет.) либо копирует из соседних объектов. Как раз такие данные (слои, глубины - как назовёшь)- и надо выделять. Самое просто что приходит на ум - хранить в отдельном поле либо флаг выделения, либо цвет (если всё-таки делать градацию по цвету)

Originally posted by Azaze1
благо для данной задачи хватает одного цвета + выеделение надо делать именно по строкам. если вкратце - в таблице хранятся данные для объекта - например характеристики скважины по глубинам. На определённые глубины данных нет - они либо интерполируются (юзер пишет данные как среднее арифмет.) либо копирует из соседних объектов. Как раз такие данные (слои, глубины - как назовёшь)- и надо выделять. Самое просто что приходит на ум - хранить в отдельном поле либо флаг выделения, либо цвет (если всё-таки делать градацию по цвету)


В таком случае - лучше устанавливать флаг. А его уже обрабатывать на клиенте как показано выше.


Рис. 13.4. Для одновременного перемещения нескольких элементов управления сначала щелкните кнопкой мыши в любом месте формы. Растяните рамку выделения вокруг всех элементов управления, которые хотите переместить, как показано на рисунке. После того как все элементы выделены, перетащите мышью один из них. Все элементы управления перемещаются как единое целое. (Вы могли бы держать нажатой клавишу и щелкать кнопкой мыши каждый элемент управления по очереди.)

Далее приведена краткая сводка приемов, если вашей памяти нужен небольшой первоначальный толчок.

¦ Создание элемента управления. Используйте ленту для выбора нужного элемента управления и затем нарисуйте его в нужном месте формы.

¦ Перемещение элемента управления. Просто перетащите его. Можно передвигать несколько элементов управления одновременно, как показано на рис. 13.4.

¦ Изменение размеров элемента г/правления. Перетащите мышью края прямоугольника, охватывающего элемент. Если у вас связанная комбинация "Подпись — Поле" (которую программа Access создает при добавлении поля БД), выбирайте нужную часть элемента для щелчка мышью. На рис. 11.9 показано, где щелкнуть кнопкой мыши для переноса только имени, только значения поля или обоих компонентов.

¦ Изменение элемента управления. Выделите его и затем в Окне свойств найдите параметр, который нужно изменить.

¦ Удаление элемента управления. Выделите его и затем нажмите клавишу для полного стирания элемента.

Если элементы управления не включены в макет, может оказаться трудно аккуратно скомпоновать их. Для того чтобы помочь вам, программа Access предлагает ускоряющие средства, способные выровнять шаловливые элементы управления и сгладить незначительные расхождения. В следующих разделах приведено несколько полезных советов по применению этих средств.

Как освободиться от привязки к сетке

Когда вы в Конструкторе помещаете элемент управления на форму или передвигаете его, программа Access всегда выравнивает его относительно ближайшего узла сетки. (Линии сетки в Конструкторе представлены точками, которые выводятся под элементами управления.) Access выполняет подобное выравнивание, потому что это облегчает создание согласованной формы. Если бы элементы управления были абсолютно свободно плавающими, было бы трудно выровнять два элемента управления относительно друг друга. Даже если у вас не трясутся руки, тяжело управлять мышью с такой точностью!

Однако в некоторых ситуациях возникает желание протолкнуть элемент управления между точками сетки. Обычно в этом случае на форме есть изображение, и вы пытаетесь создать интересный визуальный эффект. В подобных ситуациях программа Access позволяет освободиться от сетки. Просто выберите Инструменты конструктора форм | Упорядочить > Макет элемента управления > Привязать (Form Design Tools | Arrange > Control Layout > Snap to Grid). Как правило, эта кнопка подсвечена для обозначения постоянной привязки элементов управления к сетке. Для ее отключения щелкните кнопку мышью. Когда закончите, привязку можно вернуть, щелкнув эту кнопку еще раз.

При желании, если вы решите, что точки сетки отвлекают, их можно скрыть, используя кнопку Инструменты конструктора форм | Упорядочить > Отображение > Сетка (Form Design Tools | Arrange > Show/Hide > Show Grid). А когда вы сочтете, что нужно вернуть выравнивание элементов управления по линиям сетки, просто выделите все .. элементы, щелкните выделение правой кнопкой мыши и выберите команду Выровнять > по узлам сетки. Access подтолкнет каждый элемент управления к ближайшей линии сетки. Используйте команду Размер > по узлам сетки для того, чтобы ширина и высота элементов управления также соответствовала сетке.

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

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

Однако, иногда хотелось бы, чтобы цвет сетки был иным. Возможно, у Вашего монитора проблемы с цветопередачей или яркостью и цвет сетки по умолчанию неприятен глазу. А может быть Вы в душе эстет и серая скучная сетка вгоняет Вас в тоску. Как бы то ни было, способ изменить цвет в Excel любезно предусмотрен разработчиками.

Для изменения нужно открыть параметры Excel ( Файл - Параметры ). В открывшемся окне слева выбираем вкладку "Дополнительно". Далее находим группу команд "Параметры отображения листа" (группа - это заголовок в окне параметров, после которого следует некоторый набор команд).

Обратите внимание, что параметры этой группы применяются к каждому отдельному листу независимо от других. Поэтому рядом с заголовком в выпадающем списке нужно выбрать тот лист, сетку которого хотим изменить (по умолчанию будет отображен тот, который был активен в момент, когда Вы нажимали кнопку " Файл "). После выбора листа находим последнюю команду в данной группе " Цвет линий сетки ". Выпадающая панель выбора цветов предложит нам один из 56 вариантов цветового оформления линий. Смелой выбирайте любой понравившийся, ведь вернуться к привычному виду всегда можно выбрав цвет " Авто ".

Видеоверсию данной статьи смотрите на нашем канале на YouTube

Чтобы не пропустить новые уроки и постоянно повышать свое мастерство владения Excel - подписывайтесь на наш канал в Telegram Excel Everyday

Куча интересного по другим офисным приложениям от Microsoft (Word, Outlook, Power Point, Visio и т.д.) - на нашем канале в Telegram Office Killer

Вопросы по Excel можно задать нашему боту обратной связи в Telegram @ExEvFeedbackBot

Вопросы по другому ПО (кроме Excel) задавайте второму боту - @KillOfBot

В любом случае придется программировать. Конспективно .

Смена цвета.

1. Код встраиваем в обработчик событий Form.Load()

2. Для перехода к первой/последней записи (соответственно индексации) используем команды

3. Получаем соответствующее свойство поля и (по условию) меняем цвет фона командами

.detail.backcolor= RGB(xxx, xxx, xxx)
.footer.backcolor= RGB(xxx, xxx, xxx)
.header.backcolor= RGB(xxx, xxx, xxx)

Последние записи.

1. Лучше всего использовать фильтрацию при выборке данных командой SQL TOP N. Для это необходимо соответствующим образом проиндексировать БД.

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

Читайте также: