Вставка рисунков в аксесс с интернета. Как вставить картинку в базу данных. Изменение цвета фона формы и ее элементов

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

В качестве фона формы Access 2002 позволяет задавать не только гладкие цвета, но и растровые рисунки, хранящиеся в разнообразных графических форматах, таких как WMF и BMP. В комплект поставки Access 2002 входит несколько растровых рисунков, которые хранятся в папке Microsoft OfficeOfficelOBitmapsStyles.

Чтобы задать фоновый рисунок для формы:

  1. В режиме Конструктора выделите всю форму. Для этого щелкните левой кнопкой мыши по квадратику в верхнем левом углу окна Конструктора формы, где пересекаются вертикальная и горизонтальная линейки. После выделения формы в месте пересечения линеек появится черный квадратик.
  2. На панели инструментов Конструктор форм (Form Design) нажмите кнопку Свойства (Properties). Появится окно свойств формы (рис. 5.24).

    Рис. 5.24. Окно свойств формы

  3. Раскройте вкладку Макет (Format) в окне свойств формы и с помощью полосы прокрутки переместитесь в копец списка свойств, где находится свойство Рисунок (Picture).

    Рис. 5.25. Диалоговое окно Выбор рисунка

  4. В поле свойства Рисунок введите путь и имя файла рисунка либо воспользуйтесь Построителем: поместите точку ввода в поле Рисунок, затем нажмите кнопку Построить (Build), которая появится справа от поля в виде маленького квадрата с изображением многоточия на нем, после чего откроется диалоговое окно Выбор рисунка (Insert Picture) (рис. 5.25), с помощью которого можно найти и указать необходимый файл рисунка. Это диалоговое окно является стандартным диалоговым окном открытия файлов в Windows. После того как файл рисунка будет найден, выделите его название, а затем нажмите кнопку ОК. Access отобразит путь и имя файла в поле свойства Рисунок.
  5. Чтобы закрыть окно свойств формы, нажмите кнопку Закрыть (Close) вверху окна.

В отличие от цветов фона, фоновый рисунок распространяется на все разделы формы. Чтобы удалить фоновый рисунок, просто удалите содержимое текстового поля свойства Рисунок.

Кроме того, с помощью свойств, сгруппированных на вкладке Макет окна свойств формы, можно настроить отображение фонового рисунка. Свойство Тип рисунка (Picture Type) определяет метод, используемый Access для присоединения рисунка к форме. Выберите в раскрывающемся списке этого свойства элемент Внедренный (Embedded), если предполагается распространение приложения между пользователями и форма не должна использовать внешних файлов, которые могут быть перемещены или удалены. Если же имеется много форм, использующих один и тот же фоновый рисунок, то в раскрывающемся списке выберите элемент Связанный (Linked), что позволит уменьшить использование дискового пространства путем включения фонового рисунка в форму при помощи связи с файлом рисунка.

С помощью свойства Масштабы рисунка (Picture Size Mode) можно определить размеры фонового рисунка. Для вывода рисунка в исходных размерах, в раскрывающемся списке этого свойства выберите элемент Фрагмент (Clip). При выборе значения Вписать в рамку (Stretch) рисунок растягивается или сжимается по горизонтали и по вертикали до размеров формы; при этом возможно изменение пропорций рисунка. Выбор значения По размеру рамки (Zoom) приведет к растяжению или сжатию рисунка с сохранением пропорций до максимально возможных размеров, при которых не происходит обрезка рисунка.

Чтобы определить положение фонового рисунка, выберите один из следующих элементов раскрывающегося списка свойства Выравнивание рисунка (Picture Alignment): Сверху слева (Top Left), Сверху справа (Top Right), По центру (Center), Снизу слева (Bottom Left), Снизу справа (Bottom Right) либо По центру формы (Form Center).

Замечание

Чтобы фоновый рисунок центрировался относительно формы, а не окна формы, установите для свойства Выравнивание рисунка значение По центру формы, а не По центру.

Если свойство Мозаичное заполнение (Picture Tiling) имеет значение Да (Yes), то в окне формы или во всей форме (в зависимости от значения свойства Выравнивание рисунка) выводится повторяющееся изображение рисунка.

После изменения значения свойства результат этого изменения немедленно отображается в форме.

Печать формы

Форма, как и любой другой документ, может быть выведена на печать. Сначала необходимо подготовить форму к печати.

1. Откройте учебную базу данных Отдел продаж .

2. В области переходов дважды щелкните кнопкой мыши на названии формы Основная форма Клиенты , чтобы открыть ее.

3. Щелкните правой кнопкой мыши на заголовке формы и выберите из контекстного меню пункт Конструктор .

4. Теперь щелкните правой кнопкой мыши в области данных и в контекстном меню выберите пункт Свойства . Откроется окно свойств, рассмотренное в предыдущих разделах.

5. В окне свойств перейдите на вкладку Макет и для свойства Цвет фона чередования укажите цвет, аналогичный цвету фона.

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

1. Щелкните правой кнопкой мыши в области примечания и в контекстном меню выберите пункт Свойства . Откроется окно свойств.

2. В окне свойств перейдите на вкладку Макет и для свойства Режим вывода укажите Только на экран .

В нашей форме примечаний нет, поэтому нет необходимости вывода области примечаний на печать.

3. Перейдите на вкладку Конструктор и из группы Элементы управления выберите инструмент Вставить разрыв страницы .

4. Укажите место для разрыва страницы, щелкнув кнопкой мыши на нижней границе области данных.

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

1. Откройте главное меню программы, нажав кнопку Office в левом верхнем углу окна программы Access.

2. В меню выберите пункт Печать .

4. В группе Масштаб выберите раскладку на две страницы на одном листе (рис. 3.25), чтобы видеть, как будут выглядеть первая и вторая страницы.

Рис. 3.25. Предварительный просмотр

5. Нажмите кнопку Печать

на вкладке Предварительный просмотр . Откроется окно Печать (рис. 3.26).

Рис. 3.26. Окно Печать

6. В поле Имя выберите принтер из списка установленных в системе принтеров. В поле Состояние отобразится готовность принтера к печати. Если состояние отличается от Готов , выберите другой принтер или устраните неполадки.

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

8. В группе Печатать укажите диапазон печатаемых страниц.

9. В группе Копии укажите количество копий.

10. Нажмите кнопку Настройка , после чего откроется окно Параметры страницы (рис. 3.27).

Рис. 3.27. Окно Параметры страницы

11. В группе Поля укажите размеры полей. Результаты вносимых изменений отображаются в окне предварительного просмотра Образец .

Для разделенной формы можно также указать, какую часть печатать.

12. Нажмите кнопку ОК .

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

13. Когда все готово к печати, нажмите кнопку ОК .

14. Если вы печатаете в файл, то появится окно Печать в файл (рис. 3.28). Укажите имя файла и нажмите кнопку ОК .

Рис. 3.28. Окно Печать в файл

15. Если же вы выбрали для печати существующий принтер, то сразу появится сообщение о процессе печати. Теперь вы можете любую форму в Microsoft Access 2007. В следующем разделе будет рассмотрено использование формы в качестве интерфейса для работы с дан ными.

Следующая глава >