Access пишет названия файлов вместо картинок
В Microsoft Access существует возможность вставки рисунков в формы и отчеты. Использование рисунков может улучшить внешний вид создаваемых форм и отчетов. Например, в отчеты можно включать логотип фирмы, а в форме предоставлять возможность просмотра не только данных о сотрудниках фирмы, но и их фотографий. Для вставки рисунков в формы и отчеты используются специальные элементы управления — свободная и присоединенная рамки объектов (Unbound Object Frame, Bound Object Frame), а также элемент управления Рисунок (Image).
Способ вставки рисунка зависит от того, как предполагается его использовать.
- Объект OLE можно хранить в одном из полей таблицы Access, например в таблице "Сотрудники" (Employee) базы данных "Борей" хранятся фотографии сотрудников. Можно в полях таблицы Access хранить также документы Word. В таком случае для отображения этих объектов в формах или отчетах следует использовать элемент управления Присоединенная рамка объекта (Bound Object Frame).
- Объекты OLE могут храниться не в таблицах Access, а прямо в форме или отчете. С помощью такого способа в форме или отчете можно, например, сохранить логотип фирмы. В этом случае для отображения объекта OLE следует использовать элемент управления Свободная рамка объекта (Unbound Object Frame) или Рисунок (Image).
- Можно также для добавления рисунка в форму или отчет использовать свойство Рисунок (Picture) этой формы или отчета. Обычно так поступают, когда требуется включить фоновый рисунок (подложку), занимающий часть окна или все окно формы или отчета.
Чтобы добавить фоновый рисунок в форму:
- Откройте форму в режиме Конструктора.
- В окне свойств формы на вкладке Макет (Format) найдите свойство Рисунок (Picture). В поле ввода этого свойства введите путь и имя файла рисунка. Для этого можно нажать кнопку Построителя и выбрать в окне Выбор рисунка (Insert Picture) необходимый файл рисунка (рис. 15.1).
Замечание
Несколько стандартных файлов для фоновых рисунков находятся в папке MICROSOFT OFFICE\OFFICE\BITMAPS\STYLES.
- Установите значение свойства Тип рисунка (Picture Type). Значений может быть два: Внедренный (Embedded) или Связанный (Linked). Если рисунок внедренный, он сохраняется в файле базы данных (mdb). Связанный рисунок хранится в отдельном файле на диске. О преимуществах и недостатках того и другого способа мы уже говорили выше. Если один и тот же рисунок вставляется во много форм или отчетов, то внедрение его приведет к "распуханию" файла mdb, т. к. храниться будет столько копий рисунка, сколько раз вы его внедряли. Если вы решите сделать его связанным, необходимо заботиться о том, чтобы его случайно не удалили или не переместили.
- С помощью следующих свойств настройте отображение фонового рисунка.
- Свойство Масштабы рисунка (Picture Size Mode) имеет три значения: Фрагмент (Clip), Вписать в рамку (Stretch), По размеру рамки (Zoom). Значение Фрагмент отображает рисунок в его исходном размере. Если размер рисунка превышает размер окна формы, то изображение рисунка обрезается. Значение Вписать в рамку изменяет размер рисунка так, чтобы он соответствовал окну формы. Использование данного значения может привести к искажению изображения рисунка. Значение По размеру рамки изменяет размер рисунка так, чтобы он соответствовал окну формы либо по ширине, либо по высоте. Использование данного значения не приведет ни к обрезанию рисунка, ни к искажению его пропорций.
Рис. 15.1. Диалоговое окно Выбор рисунка
- Если вставляется рисунок, занимающий не всю форму, свойство Выравнивание рисунка (Picture Alignment) позволяет определить положение его в форме: Сверху слева (Top Left), Сверху справа (Top Right), По центру (Center), Снизу слева (Bottom Left), Снизу справа (Bottom Right), По центру формы (Form Center).
- Свойство Мозаичное заполнение (Picture Tiling) позволяет выводить повторяющееся изображение рисунка.
- Открыть форму в режиме Конструктора формы или отчет в режиме Конструктора отчета.
- Нажать кнопку Рисунок (Image) на панели элементов (кнопка Мастера элементов должна быть нажата, чтобы запустился Мастер рисунков).
- Выбрать в форме или отчете место, в которое помещается рисунок, и щелкнуть на нем левой кнопкой мыши.
- В раскрывшемся окне Вставка рисунка (Insert Picture) выбрать имя файла, содержащего добавляемый рисунок, и нажать кнопку ОК. Будет создан элемент управления, в котором помещается рисунок (рис. 15.4).
- Установить значения свойств, которые влияют на то, как рисунок будет отображаться в форме или отчете. Эти свойства аналогичны соответствующим свойствам формы.
- Открыть форму в режиме Конструктора формы или отчет в режиме Конструктора отчета.
- Нажать кнопку Свободная рамка объекта (Unbound Object Frame) на панели элементов.
- Выбрать в форме или отчете место для вставляемого объекта и щелкнуть на нем левой кнопкой мыши. Появится диалоговое окно мастера Вставка объекта (Insert Object). С помощью мастера можно вставить уже готовый рисунок из файла или сначала создать его в соответствующем приложении, а затем вставить. Поэтому дальнейшие шаги могут быть разными.
- В диалоговом окне Microsoft Access выбрать переключатель Создать новый (Create New), а затем в списке Тип объекта (Object Type) выбрать приложение, с помощью которого будет создаваться рисунок (рис. 15.5).
- Объект может отображаться в виде значка — это удобно, когда он содержит сведения, которые не должны все время выводиться на экран. В таком случае нужно просто установить флажок В виде значка (Display as Icon).
- Нажать кнопку ОК.
- Создать объект с помощью приложения, выбранного на шаге 1.
- Закончив создание объекта, выбрать команду Закрыть (Close) в меню Файл (File) приложения, чтобы вернуться в Microsoft Access. Microsoft Access создает элемент управления Свободная рамка объекта (Unbound Object Frame) и отображает в ней рисунок.
- В диалоговом окне Microsoft Access выбрать переключатель Создать из файла (Create From File), а затем указать путь к файлу. Если точный путь вы не знаете, используйте кнопку Обзор (Browse) (рис. 15.6).
- Если нужно отобразить объект в виде значка, установить флажок В виде значка (Display As Icon).
- Для нахождения связи с объектом установить флажок Связь (Link). Если флажок сброшен (по умолчанию), объект будет внедрен.
- Нажать кнопку ОК.
- перемещением с помощью мыши нужного поля из списка полей таблицы-источника. В этом случае будет сразу создан элемент управления, связанный с полем в таблице;
- с помощью кнопки Присоединенная рамка объекта (Bound Object Frame) на панели элементов. В данном случае будет создан элемент управления, для которого нужно сразу установить свойство Данные (RecordSource) — имя поля, содержащего объект OLE (рис. 15.9).
- Открыть таблицу в режиме Таблицы или форму в режиме Формы.
- Перейти на запись, в которую требуется вставить рисунок, и выбрать поле объекта OLE.
- Выполнить команду Объект (Object) из меню Вставка (Insert).
- В диалоговом окне Microsoft Access (см. рис. 15.5) выбрать переключатель Создать новый (Create New), а затем в списке Тип объекта (Object Type) выбрать тип приложения, в котором будет создаваться объект. Если файл с рисунком уже готов, то нужно выбрать переключатель Создать из файла (Create From File), a затем указать путь к файлу.
- Для того чтобы отобразить объект в виде значка, установить флажок В виде значка (Display As Icon).
- Нажать кнопку ОК.
- Если вы создаете новый рисунок, то нужно создать его с помощью приложения выбранного на шаге 4.
- Закончив создание объекта, выбрать команду Закрыть (Close) в меню Файл (File) приложения для возвращения в Microsoft Access.
Пример использования рисунка в качестве фона в форме приведен на рис. 15.2.
Аналогично вставляется фоновый рисунок в отчет. Пример использования рисунка в качестве фона в отчете приведен на рис. 15.3.
Рисунок может быть вставлен в форму и в виде элемента управления формы. Для этого можно использовать два типа элементов управления: Рисунок (Image) и Свободная рамка объекта (Unbound Object Frame).
Рис. 15.2. Использование фонового рисунка в форме Microsoft Access
Рис. 15.3. Фоновый рисунок в отчете Microsoft Access
Если не требуется прямое изменение рисунка в форме или отчете, то лучше использовать Рисунок (Picture) (форма будет работать быстрее). Если же предполагается часто изменять рисунок, нужно вставить его с помощью свободной рамки объекта.
Чтобы вставить элемент управления Рисунок (Image), необходимо:
Рис. 15.4. Использование элемента Рисунок для вставки рисунка в форму
Чтобы вставить рисунок в форму или отчет с помощью свободной рамки объекта, необходимо:
Если вам еще предстоит создать рисунок, проделайте следующие операции.
Рис. 15.5. Окно Microsoft Access, используемое для вставки рисунка с помощью свободной рамки объекта
Если же файл с рисунком у вас уже готов, чтобы вставить его прямо из файла, вам необходимо:
Рис. 15.6. Окно Microsoft Access при вставке рисунка из файла в отчет с помощью свободной рамки объекта
Рис. 15.7. Вставка рисунка Microsoft Paint в отчет с помощью свободной рамки объекта
Пример вставки рисунка, созданного с использованием Microsoft Paint, в форму с помощью свободной рамки объекта приведен на рис. 15.7.
После вставки объекта можно изменять его размеры и пропорции с помощью свойства Установка размеров (Size Mode). В большинстве случаев изменения в свободный объект могут вноситься в режиме Конструктора формы или отчета. Для того чтобы иметь возможность изменять объект в режиме формы, необходимо задать для свойства Доступ (Enabled) свободной рамки объекта значение Да (Yes), а для свойства Блокировка (Locked) — значение Нет (No). Чтобы отредактировать объект, дважды щелкните на нем мышью. Для этого только необходимо, чтобы на вашем компьютере было установлено приложение, в котором может редактироваться файл данного типа. Пример редактирования внедренного точечного рисунка представлен на рис. 15.8.
Рис. 15.8. Пример редактирования точечного рисунка с помощью Microsoft Paint
Для того чтобы выйти из режима редактирования, достаточно щелкнуть мышью за пределами рисунка.
В отличие от других элементов управления в форме, которые связаны с записями в таблице-источнике, рисунок в свободной рамке объекта не меняется при перемещении по записям в форме — он связан с самой формой, а не с данными, которые отображаются в форме. Рисунки, которые хранятся в записях таблицы, отображаются в форме с помощью присоединенной рамки объекта.
Для хранения рисунков и других объектов OLE в таблицах Access используется специальный тип поля: Объект OLE (OLE Object). Элемент управления Присоединенная рамка объекта (Bound Object Frame) создается одним из стандартных способов:
Рис. 15.9. Создание присоединенной рамки объекта в режиме Формы
Вставить рисунок в поле таблицы можно как в таблице, открытой в режиме Таблицы, так и в форме. Для этого нужно:
Рисунок будет вставлен в запись в таблице. При этом в режиме Формы рисунок или иной объект автоматически будут отображаться на экране. В режиме Таблицы будет отображаться только тип объекта, например Растровый рисунок.
Вставка графических файлов происходит либо напрямую, либо при помощи отдельных графических фильтров. Эти фильтры устанавливаются при инсталляции Microsoft Access. Для вставки файлов формата Enhanced Metafile (EMF), точечных рисунков Windows (BMP, RLE, DIB), метафайлов Windows (WMF) и значков (ICO) графический фильтр не требуется. Однако такие фильтры необходимы для вставки всех остальных файлов графических.форматов, перечисленных ниже:
AutoCAD Format 2-D (DXF) Computer Graphics Metafile (CGM)
CorelDRAW (CDR) Encapsulated PostScript (EPS)
Graphics Interchange Format (GIF) JPEG File Interchange Format (JPG)
Kodak Photo CD (PCD) Micrografx Designer/Draw (DRW)
PC Paintbrush (PCX) Portable Network Graphics (PNG)
Tagged Image File Format (TIFF) Targa (TGA)
WordPerfect Graphics (WPG) HG Graphics Language (HGL, PLT) Macintosh PICT (PCT)
При добавлении GIF-файлов, JPEG и других распространенных типов файлов изображений в поле "Объект OLE" в таблице Access в таблице Access используется слово "Пакет", а не ожидаемое "Тостовая карта".
В этом поле отображается слово "Пакет", так как поле "Объект OLE" поддерживает только тобит-файлы Windows (BMP) и Device Independent Bitmap (DIB). Если вы хотите хранить дополнительные типы графических файлов в поле "Объект OLE" и правильно отображать их в Access, необходимо установить дополнительное программное обеспечение, которое должно предоставлять компоненты (серверы OLE),необходимые для отображения дополнительных типов изображений.
В предыдущих Microsoft Office предоставлялась программа "Редактор фотографий (Майкрософт)", которая, в свою очередь, предоставляла сервер OLE для отрисовки GIF- и JPEG-файлов. Система Office 2003 заменила редактор фотографий на Microsoft Picture Manager, который не обеспечивает нужный OLE-сервер для файлов таких типов.
Обойти эту проблему можно одним из следующих способов:
Храните изображения за пределами базы данных и используйте Visual Basic® для их отображения с помощью кода VBA. Дополнительные сведения см. в статье базы знаний Майкрософт "Отображение изображений из папки в форме, отчете или на странице доступа к данным".
Преобразуйте изображения в формате GIF или JPEG в файлы ток-карты Windows (BMP). Несмотря на то, что размер BMP-файлов обычно больше GIF- или JPEG-файлов, они помогают уменьшить размер базы данных, так как Access не создает для них дополнительные файлы DIB. Сведения о том, почему Access создает файлы DIB при использовании giF- или JPEG-изображений, см. в статье базы знаний Майкрософт "Причины роста баз данных объектами OLE".
Решение
Tapochek1975, где брать названия оборудования я не знаю. Но имена файлов во вложении можно определить.
Сделайте в форме Оборудование процедуру на событии Текущая запись (Current) и в ней код
Если у вас будет табличка где имена файлов будут связаны с названиями фото, то можно будет вместо имен файлов записать нужные названия
Большое спасибо!
Правда в поле высвечиваются сразу названия всех прикрепленных фото, а не текущего. Но с этим я попробую разобраться.
Код читается и все в нем понятно, но сам написать с нуля не могу. Просто чайник я.
Круто, спс.
Tapochek1975, вариант по вашей задумке.
1. создана таблица TitleFoto с полями FotoFile - имя файла фото и "title" - название оборудования. В ней имена сохраненных фоток и придуманные мной названия. Поле FotoFile уникальное, индексированное
2. В форме Оборудование, для поля Foto создана процедура на событии AttachmentCurrent (Текущее вложение). В ней определяется текущее имя файла и подключена функция GetTitle(), которая по имени файла находит название оборудования из таблицы TitleFoto
3. Если шелкнуть мышкой по полю Foto, то сверху него возникает тулбар с кнопками навигации. Нажимая на них, переходите по фотографиям, а в Поле61 (что за название? Назовите говорящим именем) печатается название оборудования
Пишу подробно, поскольку информации в инете по управлению вложениями пока мало. Даже сделал метки на этот топик для облегчения поиска
Возможно ли в базе хранить вместо картинок имена файлов, а в отчете получать сами картинки ?
Хочу создать БД и использовать ее как для отчета (для печати каталога на бумаге) и для публикования в интернете при помощи asp. Вследствии чего не хочется увеличивать базу за счет хранения в ней самих картинок. А вместо них хочу использовать имена файлов.
Если это возможно, подскажите как это реализовать или в каком направлении копать.
БД Access из Office 2000
Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox получать путь к файлам?
Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox.
Как хранить картинки в Аксессовой базе?
Надло написать приложение для хранения картинок в базе Ассеss. Сие возможно?
Конвертировать имена файлов из DOS 8.3 в Windows возможно?
Имеется программа, которая создает файлы (вспомогательные) с DOS именами в формате 8.3 Возможно ли.
Пожалуйста, объясните, как хранить файлы (картинки) в базе, и как их оттуда доставать
Добрый день. Не могли бы Вы на пальцах объяснить, как класть и доставать картинки в MS SQL 2000.
Считывать имена файлов и выводить на экран только имя файла (вместо полного пути)
нужно считывать имена файлов и вывести на экран только имя файла а не полный путь
Возможно ли хранить данные сkeditor в txt фаиле или это не правильно там их хранить?
В пред идущих темах я начал разбираясь с установкой этого чудесного редактора. У меня вопрос.
Что оптимальнее: хранить картинку в БД или хранить в базе только путь к ней?
Доброго времени суток. Сайт посвящен игровой тематике. На сайте есть раздел в котором.
Проблема. На сайте необходимо в переменной сессии хранить имена.
Значит так. Пишу в global.asa session('name') = 'hhh' НА самом сайте необходимо в переменной.
Возможно ли по индексу получать элементы списка/кортежа?
Возможно ли по индексу получать элементы списка/кортежа? Типа такого: value = list
Дополнительные сведения
Дополнительные сведения об использовании изображений в Access см. в указанных ниже статьях.
ACC. Причины, по которым объекты OLE вызывают рост, объясняется, почему хранение GIF- и JPEG-изображений в поле "Объект OLE" может быстро увеличивать размер базы данных.
Чтобы сохранить файл точего рисунка в качестве объекта OLE в поле "Объект Access OLE", объясняется, как использовать код VBA для хранения файлов изображений в поле "Объект OLE" и автоматического запуска правильного контейнера и отображения этих файлов.
Возможно ли в базе хранить вместо картинок имена файлов, а в отчете получать сами картинки ?
Хочу создать БД и использовать ее как для отчета (для печати каталога на бумаге) и для публикования в интернете при помощи asp. Вследствии чего не хочется увеличивать базу за счет хранения в ней самих картинок. А вместо них хочу использовать имена файлов.
Если это возможно, подскажите как это реализовать или в каком направлении копать.
БД Access из Office 2000
Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox получать путь к файлам?
Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox.
Как хранить картинки в Аксессовой базе?
Надло написать приложение для хранения картинок в базе Ассеss. Сие возможно?
Конвертировать имена файлов из DOS 8.3 в Windows возможно?
Имеется программа, которая создает файлы (вспомогательные) с DOS именами в формате 8.3 Возможно ли.
Пожалуйста, объясните, как хранить файлы (картинки) в базе, и как их оттуда доставать
Добрый день. Не могли бы Вы на пальцах объяснить, как класть и доставать картинки в MS SQL 2000.
Почему никто не отвечает ?
Неужели такой тупой вопрос ?
Если кто знает, скажите хотя бы возможно это или нет.
Я только начинаю работать с Access.
Спасибо.
Дак а в чем проблема. Храни. Просто при построении отчета помучаешься. Попробуй все на примере. Сделай тестовую таблицу из пары записей, сделай по ней отчет.
Я так и сделал. Тестовую таблицу и в ячейках вместо картинок имена файлов. А как заставить, чтобы в отчете появлялись картинки ?
Если знаете, подскажите пожалуйста.
Посказали еще вариант - создать еще одну таблицу, где будут храниться картинки. Мол при внешнем запросе при ASP скорость обработки запроса не увеличится из-за того, что картинки будут в отдельной таблице, а р рабочей будут имена файлов. Но опять же на эти поля /OLE обектов/ нельзя добавить связь из других таблиц, что необходимо для формирования отчетов, как я думаю.
Неужели придется все картинки закидывать в базу ? А если я при добавлении картинок буду ставить галочку 'связывать', то размер базы будет не меньший, чем при внедренном объекте, или меньше все-таки ?
Может для решения подобной задачи есть другие способы ?
Считывать имена файлов и выводить на экран только имя файла (вместо полного пути)
нужно считывать имена файлов и вывести на экран только имя файла а не полный путь
Возможно ли хранить данные сkeditor в txt фаиле или это не правильно там их хранить?
В пред идущих темах я начал разбираясь с установкой этого чудесного редактора. У меня вопрос.
Что оптимальнее: хранить картинку в БД или хранить в базе только путь к ней?
Доброго времени суток. Сайт посвящен игровой тематике. На сайте есть раздел в котором.
Проблема. На сайте необходимо в переменной сессии хранить имена.
Значит так. Пишу в global.asa session('name') = 'hhh' НА самом сайте необходимо в переменной.
Возможно ли по индексу получать элементы списка/кортежа?
Возможно ли по индексу получать элементы списка/кортежа? Типа такого: value = list
Здрасььте.
Мне нужно в форме, что бы рядом с вложением (фото) высвечивалось поле с названием файла фотографии.
Т.е. в таблице запись с полем вложение, а в форме этой записи прикрепляются несколько фотографий. Нужен комментарий в одно два слова к ней.
Я решил, что удобнее будет файл назвать как мне необходимо. а в форме просто выводить название файла в отдельное поле.
Есть способы решения? если можно не одним словом а хотя бы двумя. Спасибо
Создать поле со списком, все лгко только не могу додуматься
Базу данных сделал, все по методичке на 26 странице индивидуальные задания, ВАРИАНТ 10. Первое.
Создать файл с названием из файла
Требуется создать файл с названием из файл к примеру file.txt
Не могу создать поле с атрибутом AUTO_INCREMENT.
Имеется следующее: CREATE TABLE IF NOT EXISTS `orp_players`( `ID` int(11) UNSIGNED NOT NULL.
Здрасььте.
Мне нужно в форме, что бы рядом с вложением (фото) высвечивалось поле с названием файла фотографии.
Т.е. в таблице запись с полем вложение, а в форме этой записи прикрепляются несколько фотографий. Нужен комментарий в одно два слова к ней.
Я решил, что удобнее будет файл назвать как мне необходимо. а в форме просто выводить название файла в отдельное поле.
Есть способы решения? если можно не одним словом а хотя бы двумя. Спасибо
сорри, а как вырвать кусочек базы из большой. и что бы он работал? и выложить в форум? или нужно подробное описание?
сорри, а как вырвать кусочек базы из большой. и что бы он работал? и выложить в форум? или нужно подробное описание?
Вот база только у меня формат 2007 не дает сохранить в формате 2003.
Сама база вот. Я не знаю будет ругаться или нет у меня там связанные таблицы есть.
Вообщем форма - Оборудование. Есть одна строчка с оборудованием и 3 фото а в Поле 61 когда листаешь фото должно высвечиваться например Шкаф управления или привод оси.
не нашел формы оборудование
Добавлено через 3 минуты
а с OLE пробовали делать?
Форма есть, одноименное название с таблицей.
я можно сказать чайник в access. OLE я так понимаю связывание, я разобрался со связыванием таблиц и т.п. а вот как привязать поле к названию файла не знаю. Тыкаюсь уже пару дней
Читайте также: