powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как получить доступ с объекту CodeModule некоторого MDB файла
4 сообщений из 4, страница 1 из 1
Как получить доступ с объекту CodeModule некоторого MDB файла
    #32276870
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить доступ с объекту CodeModule некоторого MDB файла из проекта другого офисного прилоджения (Excel) с тем , чтобы пополнять CodeModule новыми процедурами , должен ли быть обязательно перед доступом MDB файл находиться в закрытом состоянии.
...
Рейтинг: 0 / 0
Как получить доступ с объекту CodeModule некоторого MDB файла
    #32277170
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub GetCodeModule()
Dim AccApp As Object
Dim cmts As Object, cmt As Object, mdl As Object
'Если установить ссылку на: _
  "Microsoft Visual Basic for Applications Extensibility" _
  то можно указать специфические типы объектов.
'Dim cmts As VBComponents, cmt As VBComponent, mdl As CodeModule
    
'GetObject возвращает ссылку на открытую БД, или открывает _
  БД в новом окне. DoEvents - задержка, чтоб приложение _
  открылось. Одного может быть и недостаточно.
 
   Set AccApp = GetObject("Путь к БД")
    DoEvents

'Создается ссылка на CodeModule модуля  "basMain" 
    Set cmts = AccApp.VBE.ActiveVBProject.VBComponents
    Set cmt = cmts( "basMain" )
    Set mdl = cmt.CodeModule
 MsgBox  "Всего строк: "  & mdl.CountOfLines
End Sub
...
Рейтинг: 0 / 0
Как получить доступ с объекту CodeModule некоторого MDB файла
    #32278947
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вся проблема в том, что после использования Access не хочет корректно закрыться - говорит приложение будет закрыто (но при нажатии ОК не вешает комп)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Set AppA = CreateObject(PathOfMDB)
Set Comp2 = AppA.VBE.VBProjects(DocName2).VBComponents ' все компоненты проекта "куда"
  With Comp2.Add(1) ' vbext_ct_StdModule= 1 
   .Name = NewName
  end with
  S =  " строки процедуры" 
  Comp2(NewName).CodeModule.AddFromString S
  AppA.DoCmd.Save acModule, NewName
'AppA.CloseCurrentDatabase 'AppA.CurrentDb.Close
Set AppA = Nothing

причем, всякие варианты по закрытию пробовал (см. комментарий)
...
Рейтинг: 0 / 0
Как получить доступ с объекту CodeModule некоторого MDB файла
    #32279233
Попробуйте так:
...
Set Comp2 = Nothing
If Not AppA.UserControl Then AppA.UserControl = True
AppA.Quit
Set AppA = Nothing

А еще перед этим желательно показать окно Access (или иконку), и
лучше сделать это API функцией ShowWindow.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как получить доступ с объекту CodeModule некоторого MDB файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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