Шаг 32 - Использование ActiveX на форме

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

32_1.gif (1829 b)

Нажав на эту кнопку у вас выпадет список элементов которые есть на компьютере. Давайте найдем календарь.

32_2.gif (2632 b)

После того как Вы его выберите его можно поместить на форму.

32_3.gif (6196 b)

Теперь к этому элементу можно обращаться из VBA. Вот так например. В данном примере строить запрос на основе дат установленных в календаре.

Dim date1 As String
Dim date2 As String
Dim x As Integer

date1 = Str(Me!ЭлементActiveX2.Day) + "/" + Str(ЭлементActiveX2.Month) + "/" + Str(ЭлементActiveX2.Year)
date2 = Str(Me!ЭлементActiveX3.Day) + "/" + Str(ЭлементActiveX3.Month) + "/" + Str(ЭлементActiveX3.Year)
date1 = "#" + date1 + "#"
date2 = "#" + date2 + "#"

Dim dbs As Database, qdf As QueryDef, strSQL As String
' имя организация
Dim strOrd As String

	' Возвращает ссылку на текущую базу данных.
	Set dbs = CurrentDb
	' установить фокус
	Me.Организация.SetFocus
	' получает строку из поля со списком
	strOrd = Me.Организация.Text
	strOrd = "'" + strOrd + "'"
	' построить запрос
	strSQL = "SELECT parther.Name,chet.Nomer, chet.Data, chet.Prixod,"
	strSQL = strSQL + " chet.Rasxod FROM parther INNER JOIN chet ON parther.ID_PARTHER"
	strSQL = strSQL + " = chet.ID_PARTHER  WHERE ( parther.Name=" + strOrd + ")"
	strSQL = strSQL + " AND ( chet.Data >" + date1 + ")" + " AND ( chet.Data < " + date2 + ")"
	strSQL = strSQL + " ORDER BY chet.Data; "
	' Создает новый запрос.
	dbs.QueryDefs.Delete ("приход")
	Set qdf = dbs.CreateQueryDef("приход", strSQL)
	DoCmd.OpenReport "parther", acViewPreview
	Set dbs = Nothing
End Sub

При использовании элементов ActiveX всегда есть вариант что данного элемента нет на компьютере пользователя. Поэтому лучше при передаче базы лучше копировать элементы и производить из регистрацию. Вот пример команды для регистрации элемента управления:

Regsvr32.exe Mscal.ocx

Подробнее о элементах управления читайте "Шаг 34 - Регистрация компонент RegSrv32".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 19.10.2001