Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Модули класса в надстройки / 19 сообщений из 19, страница 1 из 1
27.04.2007, 17:31
    #34493716
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Попробовал сделать простейший пример работы с модулем класса - не работает...
При запуске db1.mdb не находит почему то frm As clsFormSpraw - пишет User-Defined type not defined . И чего не правильно?
...
Рейтинг: 0 / 0
27.04.2007, 17:31
    #34493723
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Пример вот...
...
Рейтинг: 0 / 0
27.04.2007, 17:45
    #34493760
sdfgsdfgsdf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Надстройки - Диспечер надстроек
Добавить mda файл.
Но он добавится тоько в том случае, если написан по правилам и требованиям mde.
(Как точно - не скажу- Гетса читать надо )
Еще, если так не вмоч, проще клас от туд в базу перенести.
...
Рейтинг: 0 / 0
27.04.2007, 17:47
    #34493773
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
авторЕще, если так не вмоч, проще клас от туд в базу перенести.
Так в том то весь прикол, что хочу все стандартное вынести в надстройку.
авторНадстройки - Диспечер надстроек
Про это не подумал. Спасибо, сейчас попробую
...
Рейтинг: 0 / 0
27.04.2007, 17:52
    #34493781
sdfgsdfgsdf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Вот здесь как правельно их оформить (mda)

http://am.rusimport.ru/MSAccess/f2.aspx?type=1&id=35463&find=mda
...
Рейтинг: 0 / 0
27.04.2007, 23:13
    #34494197
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
PalarmПопробовал сделать простейший пример работы с модулем класса - не работает...
При запуске db1.mdb не находит почему то frm As clsFormSpraw - пишет User-Defined type not defined . И чего не правильно?
Непрвильно то класс clsFormSpraw не является Public Creatable.
В приложенном примере работает.
...
Рейтинг: 0 / 0
27.04.2007, 23:25
    #34494205
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Что-то уже написать простую фразу не могу :-(
Попробую еще раз ...
"Неправильно то, что класс clsFormSpraw не является Public Creatable."
Он у вас был Private.
Почитайте обсуждениеКак использовать модули класса из других проектов VBA?
Также приложен текстовый файлик, с помощью которого вы легко сделаете свой модуль класса Public Creatable.
Установите курсор в самое начала модуля класса и выполните Insert - File, после чего удалите первые четыре строки:
Код: plaintext
VERSION  1 . 0  CLASS\nBEGIN\n  MultiUse = - 1   \'True\nEnd

Я пробовал использовать файл без этих строк, но почему-то тогда не всегда получается. Разбираться не стал.
...
Рейтинг: 0 / 0
28.04.2007, 00:17
    #34494244
Модули класса в надстройки
Сергей, проверь почту, пожалуйста...

Я
...
Рейтинг: 0 / 0
28.04.2007, 03:54
    #34494324
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Спасибо большое. Я так понял, это обходной маневр. Еще такой вопрос, просто из любопытства:
Постоянно сталкиваюсь с такой фишкой: по умолчанию в проекте Access стоит ссылка Microrsoft ActiveX Data Objects2.1 Library . Некоторые процедуры при этом не работают. Например в таком куске не нравится .Edit
Код: plaintext
1.
2.
3.
4.
5.
With rstTemp
    .Edit
    !SystPathCopBase = CurrentProject.Path & "\Коп"
    !MaxCop =  10 
    .Update
End With
Но вот если переключить на Microrsoft ActiveX Data Objects2.5 Library (или 2.6) - работают. Потом переключаю обратно - то же работают. Приходится каждый раз мотылять туда - сюда. И в чем тут прикол?
...
Рейтинг: 0 / 0
28.04.2007, 10:14
    #34494649
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Public WithEvents frm As Form

Public Property Set Form(Value As Form)
On Error GoTo Err_
    Set frm = Value
    frm.onClose = "[Event Procedure]"
Exit_:
    Exit Property
Err_:
    MsgBox Err.Description
    Resume Exit_
End Property

Private Sub frm_Close()
On Error GoTo Err_
Dim PromptMsg As Integer
    PromptMsg = MsgBox("Вы желаете выйти из программы?", vbYesNo)
    If PromptMsg = vbYes Then
        Close
     Else
' ************************************************
'   А здесь чего написать, чтобы форма не закрывалась?
' End, Exit Sub - все равно закрывается	
' ************************************************
    End If
Exit_:
    Exit Sub
Err_:
    Err.Clear
    Resume Exit_
End Sub
...
Рейтинг: 0 / 0
28.04.2007, 10:54
    #34494792
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Надо было событие вешать на пользовательскую кнопку, а не кнопку закрытия. Ведь процедура закрытия все равно сработает. Но теперь другой глюк - как форму закрою, не могу открыть ее повторно. Говорит, что она уже открыта...
...
Рейтинг: 0 / 0
28.04.2007, 12:05
    #34495025
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Это я победил, осталось придумать, как вызвать форму из библиотеки...
PS: Я вот только не понял, я тихо сам с собою веду беседу что ли?
...
Рейтинг: 0 / 0
28.04.2007, 13:05
    #34495253
ALEXIS_22
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Можно использовать вариант с выносом всего полезного в отдельную библиотечную базу (*.mde) с ее дальнейшим подключением через Tools-References. Но здесь есть нюансы с импортом модулей класса.
...
Рейтинг: 0 / 0
28.04.2007, 13:23
    #34495320
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Про нюансы я уже разобрался. Не догоняю только - как вызвать форму из библиотеки. Вообще я хочу туда справочники запихать.
Если пофилософствовать: а откуда берется msgbox? Его же нет в проекте, однако же появляется. По моему, надо как то сделать библиотечную форму видимой для проектов, которые к ней подключены.
...
Рейтинг: 0 / 0
28.04.2007, 13:34
    #34495368
ALEXIS_22
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Если библиотека подключена то обращение к ее модулям стандартное

Private perem As MyClass ' В области объявлений



В процедуре
Set Perem = New MyClass

With MyClass

далее обращение к св-м и методам класса.
end With
...
Рейтинг: 0 / 0
28.04.2007, 14:12
    #34495535
Karfaqen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Не догоняю только - как вызвать форму из библиотеки.Можно вызовом библиотечной функции, которая сделает это, например через DoCmd.OpenForm.
...
Рейтинг: 0 / 0
28.04.2007, 14:47
    #34495698
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
При подключении библиотеки проект видит только функции и процедуры из нее, а формы не видит.
...
Рейтинг: 0 / 0
28.04.2007, 15:09
    #34495804
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
Ну и дурак же Я!!!! Если видны функции, значит надо написать функцию в библиотчном модуле, а в ней docmd.openForm "МуМУФорма". И на кнопку проекта вешать функцию. Как все просто оказалось то...
...
Рейтинг: 0 / 0
28.04.2007, 15:11
    #34495819
Palarm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модули класса в надстройки
А Karfaqen то про это и говорил... Надо внимательней читать, что пишут...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Модули класса в надстройки / 19 сообщений из 19, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]