powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Модули
26 сообщений из 26, показаны все 2 страниц
Модули
    #33900059
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПОМОГИТЕ!!!!!!!!!!!!!!!!!!!!!!!!
Как добавить модуль в БД Access на VB, а потом удалить его(по завершении программы)?
GanSS
...
Рейтинг: 0 / 0
Модули
    #33900482
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примерно так
Создать стандартный модуль:
Код: plaintext
1.
2.
Set objVBComponent = objVBAProject.VBComponents.Add(vbext_ct_StdModule)
objVBComponent.Name = strName
objVBComponent.CodeModule.AddFromString strContent
Удалить его:
Код: plaintext
objVBComponent.Collection.Remove objVBComponent
...
Рейтинг: 0 / 0
Модули
    #33900511
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл
objVBAProject это VBProject файла базы данных MS Access.
Получить его можно, например, так:
Код: plaintext
Set objVBAProject  = AccessApplication.VBE.ActiveVBProject
AccessApplication это объект Application, т.е. активное приложение MS Access.
...
Рейтинг: 0 / 0
Модули
    #33900559
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после строки
Set objVBAProject = App.VBE.ActiveVBProject
выкидывает ошибку: Error in loading DLL
что не так?
GanSS
...
Рейтинг: 0 / 0
Модули
    #33900568
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
App:
Dim App As New Access.Application
GanSS
...
Рейтинг: 0 / 0
Модули
    #33900582
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GansMDim App As New Access.ApplicationСуществует глобальный объект с именем App. Назови свою переменную по-другому.
...
Рейтинг: 0 / 0
Модули
    #33900601
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GansMпосле строки
Set objVBAProject = App.VBE.ActiveVBProject
выкидывает ошибку: Error in loading DLL
что не так?
GanSS
А зачем вы используете App?
Каким образом вы работаете с Access Application из VB? Как открываете?
...
Рейтинг: 0 / 0
Модули
    #33900605
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю мне бы не дал VB создать переменную в этом случае. Хотя заменил, но результат тот же :(
GanSS
...
Рейтинг: 0 / 0
Модули
    #33900612
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я заменил App на appMy
а использую вот так:

Dim base_p As Database
Dim appMy As New Access.Application
Set base_p = appMy.DBEngine.OpenDatabase(Path & "Project.mdb", False, False, "MS Access;PWD=DF9D_11D3_A3")


GanSS
...
Рейтинг: 0 / 0
Модули
    #33900616
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дал бы. Собственно, дал :). App не ключевое слово. Тем не менее,
Serge GavrilovКаким образом вы работаете с Access Application из VB? Как открываете?
А так же попробуй CreateObject вместо new.
...
Рейтинг: 0 / 0
Модули
    #33900622
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy GansMDim App As New Access.ApplicationСуществует глобальный объект с именем App. Назови свою переменную по-другому.
Кто вас так учил работать с Access Application?
Вы скупы на подробности, вам трудно помогать.
...
Рейтинг: 0 / 0
Модули
    #33900628
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо какого new?
GanSS
...
Рейтинг: 0 / 0
Модули
    #33900630
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извините, Antonariy, неправильно сделал цитату. Конечно мой вопрос был для GansM.
...
Рейтинг: 0 / 0
Модули
    #33900631
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри в watch что содержит App.VBE.
...
Рейтинг: 0 / 0
Модули
    #33900644
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GansMВместо какого new?У тебя там много new? Проехали, дело не в этом.
Я тут ляпнулПосмотри в watch что содержит App.VBEКонечно appMy.VBE
...
Рейтинг: 0 / 0
Модули
    #33900648
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПосмотри в watch что содержит App.VBE.
содержание App.VBE:
<Error in loading DLL>
...
Рейтинг: 0 / 0
Модули
    #33900649
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GansMя заменил App на appMy
а использую вот так:

Dim base_p As Database
Dim appMy As New Access.Application
Set base_p = appMy.DBEngine.OpenDatabase(Path & "Project.mdb", False, False, "MS Access;PWD=DF9D_11D3_A3")


GanSS
Поймите, Access.Application и Database это разные объекты. Для добавления модуля вам не нужна Database.

Надо, например, так:
Код: plaintext
1.
Dim appMy As Access.Application
Set appMy = GetObject(Path & "Project.mdb")

Признайтесь, зачем вам надо создать модуль, а потом удалить его?
Как вы его хотите использовать?
...
Рейтинг: 0 / 0
Модули
    #33900657
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilov Antonariy GansMDim App As New Access.ApplicationСуществует глобальный объект с именем App. Назови свою переменную по-другому.
Кто вас так учил работать с Access Application?
Вы скупы на подробности, вам трудно помогать.
Я второй день и второй раз за VB так что извиняйте.
могу весь код вставить
...
Рейтинг: 0 / 0
Модули
    #33900661
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilov, он вроде и пытается в Application.
GansM, таки это результат App или appMy? Нужно второе.
...
Рейтинг: 0 / 0
Модули
    #33900670
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilov GansMя заменил App на appMy
а использую вот так:

Dim base_p As Database
Dim appMy As New Access.Application
Set base_p = appMy.DBEngine.OpenDatabase(Path & "Project.mdb", False, False, "MS Access;PWD=DF9D_11D3_A3")


GanSS
Поймите, Access.Application и Database это разные объекты. Для добавления модуля вам не нужна Database.

Надо, например, так:
Код: plaintext
1.
Dim appMy As Access.Application
Set appMy = GetObject(Path & "Project.mdb")

Признайтесь, зачем вам надо создать модуль, а потом удалить его?
Как вы его хотите использовать?

Продали мы программку (не нашу) товарищам, а им ее отчеты не устраивают.
Вот и нужно отчет сгенерить. А модуль нужен чтобы запрос выполнить.
Этот модуль расшифровывает поле из БД
...
Рейтинг: 0 / 0
Модули
    #33900671
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariySerge Gavrilov, он вроде и пытается в Application.
GansM, таки это результат App или appMy? Нужно второе.
я же писал, что заменил App на appMy => и результаты для appMy
...
Рейтинг: 0 / 0
Модули
    #33900716
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariySerge Gavrilov, он вроде и пытается в Application.

Где в его коде открыт файл базы данных для appMy?
Тогда надо было хотя бы использовать OpenCurrentDatabase.
Antonariy
GansM, таки это результат App или appMy? Нужно второе.
Для приведенного кода без разницы.
Если в процедуре об.явлено Dim App As New Access.Application, то App будет Access.Application, независимо от того, что есть глобальный объект с таким же именем.
...
Рейтинг: 0 / 0
Модули
    #33900723
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serge Gavrilov AntonariySerge Gavrilov, он вроде и пытается в Application.

Где в его коде открыт файл базы данных для appMy?
Тогда надо было хотя бы использовать OpenCurrentDatabase.
Antonariy
GansM, таки это результат App или appMy? Нужно второе.
Для приведенного кода без разницы.
Если в процедуре об.явлено Dim App As New Access.Application, то App будет Access.Application, независимо от того, что есть глобальный объект с таким же именем.

Где в его коде открыт файл базы данных для appMy? - если я правильно понял, то в самом начале открывается:
Set base_d = appMy.DBEngine.OpenDatabase(Path & "Events.mdb", False, False, "MS Access;PWD=DF9D_11D3_A3")
Set base_p = appMy.DBEngine.OpenDatabase(Path & "Project.mdb", False, False, "MS Access;PWD=DF9D_11D3_A3")
а дальше использую:
Dim wrk As Workspace
Set wrk = appMy.DBEngine.Workspaces(0) и работает

и, если нетрудно, то какая разница между OpenDatabase и OpenCurrentDatabase

Млин, рабочий день заканчивается - не смогу с вами переписываться сегодня.
Если можите, давайте завтра с 9:00 по нашему(по вашему вроде 10:00)
...
Рейтинг: 0 / 0
Модули
    #33900731
GansM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скидываю весь код.
Только не ругайтесь за черт пойми что - это тренировочный код:)
В модули нужно ф-ию GetDate запихнуть
GanSS
...
Рейтинг: 0 / 0
Модули
    #33900751
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GansMГде в его коде открыт файл базы данных для appMy? - если я правильно понял, то в самом начале открывается:
Set base_d = appMy.DBEngine.OpenDatabase(Path & "Events.mdb", False, False, "MS Access;PWD=DF9D_11D3_A3")

и, если нетрудно, то какая разница между OpenDatabase и OpenCurrentDatabase
Извините, но я не заменю вам Help.
GansM
Млин, рабочий день заканчивается - не смогу с вами переписываться сегодня.
Если можите, давайте завтра с 9:00 по нашему(по вашему вроде 10:00)
Все, что вам надо уже сказано.
Используйте либо GetObject (как я указал), либо OpenCurrentDatabase.
Подробности в Help.
...
Рейтинг: 0 / 0
Модули
    #33900757
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GansM...
Если можите, давайте завтра с 9:00 по нашему(по вашему вроде 10:00)
Я в это время сплю еще :-)
...
Рейтинг: 0 / 0
26 сообщений из 26, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Модули
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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