Вставка рисунка в рапорты access. Как создать кнопку в базе Microsoft Access

Вставка рисунка в рапорты access. Как создать кнопку в базе Microsoft Access
Вставка рисунка в рапорты access. Как создать кнопку в базе Microsoft Access

02. Данный способ позволяет вам нарисовать некоторые объекты в форме, хотя в программе Международный Туризм использовался другой алгоритм для рисования карты. Этот способ может Вам пригодится в некоторых случаях. Рисуются линии, точки, элипсы, многоугольники, т.е. те базовые объекты, которые применяются в api интерфейсе.

" Функция используется для поиска окна
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWndParent As Long , _
ByVal hWndChildAfter As Long , _
ByVal lpClassname As String , _
ByVal lpWindowName As String ) As Long

" Функция возвращает контекст устройства для рисования
Private Declare Function apiGetDC Lib "user32" Alias "GetDC" _
(ByVal hwnd As Long ) _
As Long

" Функция освобождает контекст устройства для других приложений
Private Declare Function apiReleaseDC Lib "user32" Alias "ReleaseDC" _
(ByVal hwnd As Long , _
ByVal hDc As Long ) _
As Long


" Далеее идут, функции управляющие рисованием

" Функция рисует точку на экране
Private Declare Function apiSetPixel Lib "gdi32" Alias "SetPixel" _
(ByVal hDc As Long , _
ByVal x As Long , _
ByVal Y As Long , _
ByVal crColor As Long ) As Long

" Функция рисует линию из текущей позиции "пера" до точки с координатами
" x,y, но не включая ее саму. Линия рисуется с помощью выбранного "пера". Если
" нет ошибки, то текущее положение пера устанавливается в точку с координатами
" (x,y)
Private Declare Function apiLineTo Lib "gdi32" Alias "LineTo" _
(ByVal hDc As Long , _
ByVal x As Integer , _
ByVal Y As Integer ) _
As Long

" Функция рисует дугу элипса с помощью выбранного "пера".
" Дуга рисуется против часовой стрелки.
" (x1,y1 - x2,y2) ограничивающий прямоугольник для дуги.


Private Declare Function apiArc Lib "gdi32" Alias "Arc" _
(ByVal hDc As Long , _
ByVal X1 As Integer , _
ByVal Y1 As Integer , _
ByVal X2 As Integer , _
ByVal Y2 As Integer , _
ByVal X3 As Integer , _
ByVal Y3 As Integer , _
ByVal X4 As Integer , _
ByVal Y4 As Integer ) _
As Long
" Функция рисует прямоугольник с помощью выбранного "пера".
" (x1,y1) - первый угол

Private Declare Function apiRectangle Lib "gdi32" Alias "Rectangle" _
(ByVal hDc As Long , _
ByVal X1 As Long , _
ByVal Y1 As Long , _
ByVal X2 As Long , _
ByVal Y2 As Long ) As Long

" Функция передвигает позицию рисования
" (x,y) - новая точка
" (lpPoint) - предыдущая точка
Private Declare Function apiMoveTo Lib "gdi32" Alias "MoveToEx" _
(ByVal hDc As Long , _
ByVal x As Long , _
ByVal Y As Long , _
lpPoint As POINTAPI) As Long
" Структура координаты точки
Private Type POINTAPI
x As Long
Y As Long
End Type

" Функция рисует элипс с помощью выбранного "пера".
" (x1,y1) - первый угол
" (x2,y2) - противоположный угол
Private Declare Function apiEllipse Lib "gdi32" Alias "Ellipse" _
(ByVal hDc As Long , _

ByVal X2 As Long , ByVal Y2 As Long ) As Long


" lpPoint - массив точек
" nCount - число точек
Private Declare Function apiPolyline Lib "gdi32" Alias "Polyline" _
(ByVal hDc As Long , _
lpPoint As POINTAPI, _

" Функция рисует ломаную с помощью выбранного "пера"
" lpPoint - массив точек
" nCount - число точек
Private Declare Function apiPolygon Lib "gdi32" Alias "Polygon" _
(ByVal hDc As Long , _
lpPoint As POINTAPI, _
ByVal nCount As Long ) As Long



" (x3,y3) - начальная точка рисования "пером"
" (x4,y4) - конечная точка рисования дуги
Private Declare Function apiChord Lib "gdi32" Alias "Chord" _
(ByVal hDc As Long , _
ByVal X1 As Long , ByVal Y1 As Long , _


" Функция заливает круг с помощью выбранного "пера"
" (x1,y1 - x2,y2) ограничивающий прямоугольник для дуги
" (x3,y3) - начальная точка рисования "пером"
" (x4,y4) - конечная точка рисования дуги
Private Declare Function apiPie Lib "gdi32" Alias "Pie" _
(ByVal hDc As Long , _
ByVal X1 As Long , ByVal Y1 As Long , _
ByVal X2 As Long , ByVal Y2 As Long , _
ByVal X3 As Long , ByVal Y3 As Long , _
ByVal X4 As Long , ByVal Y4 As Long ) As Long

"==============================================================
" Назначение
" Нарисовать объекты
"
Private Sub butExecute_Click()
Dim hwnd As Long , hDc As Long "Окно и контекст рисования
Dim X1 As Long , Y1 As Long , X2 As Long , Y2 As Long
Dim xy(3) As POINTAPI "Точки рисования
On Error GoTo 999

"Очистить зону рисования
Me.Refresh
DoEvents

"Поиск окна для рисования. Это решение предложено
"Николаем Малютиным г.Якутск: [email protected]
hwnd = FindWindowEx(Me.hwnd, FindWindowEx(Me.hwnd, 0, "OFormSub" , "" ), "OFormSub" , "" )

"Выбираем контекст устройства
hDc = apiGetDC(hwnd)

"Координаты зоны рисования
X1 = 15
Y1 = 90
X2 = 180
Y2 = 250

"Рисуем объекты
Select Case Me.Объекты
Case 1: "Точка - красная
Call apiSetPixel(hDc, X2 / 2, Y2 / 2, RGB(255, 0, 0))
Case 2: "Линия
Call apiMoveTo(hDc, X1, Y1, xy(0)) "Передвигаем указатель
Call apiLineTo(hDc, X2, Y2) "Рисуем линию
Case 3: "Элипс
Call apiEllipse(hDc, X1, Y1, X2, Y2 / 2)
Case 4: "Прямоугольник - закрашенный
Call apiRectangle(hDc, X1, Y1, X2, Y2)
Case 5: "Дуга
Call apiArc(hDc, X1, Y1, X2, Y2, 50, 100, 150, 150)
Case 6, 7: "Ломаная, Заливка
" Загружаем координаты
xy(0).x = X1
xy(0).Y = Y1
xy(1).x = X1 + 20
xy(1).Y = Y2
xy(2).x = X2
xy(2).Y = Y2 - 20
If Me.Объекты = 6 Then "Ломаная
Call apiPolyline(hDc, xy(0), UBound(xy))
Else "Заливка
Call apiPolygon(hDc, xy(0), UBound(xy))
End If
Case 8: "Заливка круга до хорды
Call apiChord(hDc, X1, Y1, X2, Y2, 50, 100, 150, 150)
Case 9: "Заливка круга из центра
Call apiPie(hDc, X1, Y1, X2, Y2, 50, 100, 150, 150)
End Select

"Освобождаем контекст устройства
Call apiReleaseDC(hwnd, hDc)
Exit Sub
999:
MsgBox Err.Description "Ошибка
Err.Clear
End Sub

Все примеры Microsoft Access

Содержимое баз данных (БД) хранится в таблицах, но пользователю информация традиционно представляется в больше комфортном виде – создаются формы и отчеты. Для наглядности в них включаются разные изображения: фотографии, картинки, эмблемы. Графические данные комфортнее беречь в особых полях таблиц. СУБД Microsoft Access поддерживает несколько вариантов загрузки изображений в базу данных.

Вам понадобится

  • – СУБД Microsoft Access;
  • – графический файл, содержащий картинку.
Инструкция

1. Добавьте поле объекта OLE в таблицу базы данных. Именно в данном поле приложение Microsoft Access может беречь изображения. Откройте надобную БД и в закладке «Таблицы» выделите тот элемент, в тот, что вы хотите разместить изображение. Вызовите конструктор для таблицы. Редактируя ее конструкцию, добавьте еще одно поле с типом данных «Поле объекта OLE». Задайте ему имя и сбережете метаморфозы базы («Файл» – «Сберечь»).

2. Разместите в сделанную ячейку поля OLE-объект, т.е. саму картинку . Для этого откройте таблицу в режиме просмотра. Вы увидите добавленный столбец. Установите курсор в требуемой ячейке и щелчком правой кнопкой мыши вызовите контекстное меню. Выберите команду «Добавить объект».

3. В открывшемся диалоговом окне активируйте один из предложенных вариантов добавления. Дозволено вставить теснее присутствующий графический файл либо сотворить его вначале в соответствующем редакторе и после этого связать с нынешней базой данных. В первом случае выберите в поле «Тип объекта» приложение, в котором вы хотите сделать новое изображение, скажем, «Рисунок Paintbrush». Нажмите кнопку Ок, единовременно запустится программа-редактор. Внедрение объекта в базу данных закончится позже того, как вы, сделав картинку , закроете графическое приложение.

4. Для вставки в табличное поле теснее присутствующей картинки выберите 2-й вариант – активируйте в диалоговом окне переключатель «Сотворить из файла». Нажмите на кнопку «Обзор…» и укажите путь и имя графического файла с изображением. Желанно на диске иметь картинку в формате.bmp либо.dib. По необходимости включите в окне флажок «Связь» – это дозволит СУБД отслеживать метаморфозы графического файла и перезагружать изображение в таблице.

5. Удостоверите загрузку файла, нажав кнопку Ок, после этого сбережете саму базу данных. При открытии таблицы в режиме просмотра в поле объекта OLE будет отображаться не сама картинка, а надпись «Точечный рисунок». Графическое изображение будет загружаться из таблицы при создании и работе пользователя с формами и отчетами.

Язык html не идеален и имеет ряд значительных недостатков. Для того дабы привязать картинку к определенному месту страницы, класснее для этого вставить ее при помощи таблицы. В этом случае изображение будет считаться фоном и поверх его дозволено разместить текст.

Инструкция

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

– таблица; – строка;
– колонка.Основные добавочные признаки: Border – граница; Align – выравнивание по горизонтали; Valign – выравнивание по вертикали; Bordercolor – цвет рамки; Width – ширина; Height – высота.Синтаксис таблицы 2X2 без рамки и левосторонним/правосторонним выравниванием содержимого:
Содержимое 1-й ячейки Содержимое 2-й ячейки
Содержимое 3-й ячейки Содержимое 4-й ячейки

2. Картинку надобно прописывать позже тега

. Если вставить изображение в первую ячейку таблицы, представленной выше, то получится:
Содержимое 2-й ячейки
Содержимое 3-й ячейки Содержимое 4-й ячейки
Добавочные признаки: Width – ширина; Height – высота; Alt – альтернативный текст, тот, что будет отображаться у пользователя, если у него отключена функция просмотра картинок; Align – выравнивание по горизонтали; Valign – выравнивание по вертикали; Title – подпись к изображению.

3. Применять изображение дозволено в качестве ссылки. Для этого его довольно облачить в соответствующий тег: В контексте таблицы это будет выглядеть так:

Содержимое 2-й ячейки
Содержимое 3-й ячейки Содержимое 4-й ячейки

4. Добавочные вероятности изображений. 1. Смена картинки на цвет при наведении на нее мышью и позже смены местоположения курсора:onMouseOver=”this.style.background=’#номер цвета"” onMouseOut=”this.style.background=’#номер цвета"”2. Смена картинки на другое изображение при наведении мышью:onmouseover=”this.src=’images/1.gif"” onmouseout=”this.src=’images/2.gif"”3. Вставка вращающейся карусели из картинок в ячейку таблицы (значения дозволено менять):

// 7 variables to control behavior var Car_Image_Width=100; var Car_Image_Height=100; var Car_Border=true; // true or false var Car_Border_Color=”000000″; Border=”0″ var Car_Speed=5; var Car_Direction=true; // true or false var Car_NoOfSides=6; // must be 4, 6, 8 or 12/* array to specify images and optional links. For 4 sided carousel specify at least 2 images For 6 sided carousel specify at least 3 For 8 sided carousel specify at least 4 For 12 sided carousel specify at least 6 If Link is not needed keep it “”*/ Car_Image_Sources=new Array(“images/1.gif”,””, “images/2.gif”,””, “images/3.gif”,””, “images/4.gif”,””, “images/5.gif”,””, “images/6.gif”,”” // NOTE No comma after last line);/***************** DO NOT EDIT BELOW **********************************/ CW_I=new Array(Car_NoOfSides/2+1);C_ClcW=new Array(Car_NoOfSides/2); C_Coef=new Array(3*Math.PI/2,0,3*Math.PI/2,11*Math.PI/6,Math.PI/6,3*Math.PI/2,7*Math.PI/4, 0, Math.PI/4,3*Math.PI/2,5*Math.PI/3,11*Math.PI/6,0,Math.PI/6,Math.PI/3); var C_CoefOf=Car_NoOfSides==4?0:Car_NoOfSides==6?2:Car_NoOfSides==8?5:9; C_Pre_Img=new Array(Car_Image_Sources.length); var C_Angle=Car_Direction?Math.PI/(Car_NoOfSides/2):0,C_CrImg=Car_NoOfSides,C_MaxW,C_TotalW, C_Stppd=false,i,C_LeftOffset,C_HalfNo=Car_NoOfSides/2; function Carousel(){ if(document.getElementById){ for(i=0;i