powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как определить ConnectionString подключенного модуля?
14 сообщений из 14, страница 1 из 1
Как определить ConnectionString подключенного модуля?
    #32133492
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access 2000 (XP) + MS SQL Server 7.0 (2000)

Имеется проект, в котором находятся собственные библиотеки (функции, формы и т.п) - library.ade
Имеется рабочий проект (test.adp), в котором есть ссылка (Reference) на проект library.ade

Вопрос: как при открытии проекта test.adp получить доступ к свойству Connection подключенной библиотеки?
Цель - определить к какой базе (серверу) подключен библиотечный проект (и подключен ли вообще), ну и соответственно сравнить с подключением текущего проекта.
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32134043
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логичное решение - создать функцию в библиотеке library.ade которая возвращает BaseConnectionString, а затем ее использовать в test.adp.
Пример:

library.ade

Код: plaintext
1.
2.
Public Function GetConnStr() As String
  GetConnStr = CurrentProject.BaseConnectionString
End Function


test.adp.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
...
If CurrentProject.BaseConnectionString = GetConnStr Then
  MsgBox  "Совпадают" 
Else
  MsgBox  "Не совпадают" 
End If
...
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32134439
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 -=Alexey=-
Вы предполагаете что такое решение будет работать, или точно знаете?
Может у Вас и работает (или Вы не проверяли?), но у меня любое обращение к CurrentProject дает тот проект, который запущен, а не тот, в котором находится функция.
Т.е. в том примере, который Вы привели
И CurrentProject.BaseConnectionString и GetConnStr возвращают подключение проекта test.adp
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32134717
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед тем как писать я проверил :) и метод GetConnStr возвращает строку подключения библиотеки, а не текщего проекта
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32134735
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется верить, что я делаю что-то не так, у меня такой результат не получается.
Если не сложно, бросьте на мыло два проекта, на которых Вы протестировали.
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32135226
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я извиняюсь, у себя в коде написал то правильно, а в форум запостил бог знает что :(
правильно конечно же конечно CodeProject, а не CurrentProject
т.е.
library.ade

Код: plaintext
1.
2.
Public Function GetConnStr() As String
  GetConnStr = CodeProject.BaseConnectionString
End Function


еще раз извиняюсь за неточность
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32135416
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, это то что нужно.
Чего-то я тормознул, мог бы и сам найти.
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32136122
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Имеется проект, в котором находятся собственные библиотеки (функции,
--формы и т.п) - library.ade

кстати, а как Вы используете формы/отчеты из этого библиотечного проекта?
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32136347
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SM
кстати, а как Вы используете формы/отчеты из этого библиотечного проекта?

В проекте library.ade имеются две функции:
Openform_lib (frmName, mode, ....) повторение метода Docmd.openform
OpenReport_lib (repName, mode, ....) повторение метода Docmd.openreport

Ну и для того, чтобы открыть форму или отчет из библиотечного модуля идет вызов соответствующей функции.
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32136982
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
incold, а когда основной проект переключаете на другую БД, необходимо также переподключить library.ade ? Для этого и нужно сравнение ConnectionStrings ?
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32137015
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SM
Именно так. Хотя сначала цель была, хотя бы проверить, но потом сделал и переподключение. А почему спрашиваете?
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32137066
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что похоже, что и мне придется делать что-то в этом роде.
Как делаете переподключение? codeProject.openConnection?
Авторизация NT шная или SQL ская? Кстати, а можно ли подключить несколько библиотечныйх проектов? Library1.ade, Library2.ade и т.д. и на что в таком случае будет указывать codeProject?

Если библиотечная форма открыта описанным Вами способом, с ней можно работать из кода основного проекта точно так же, как и с родной формой -
forms!MyLibraryForm!MyControl .... не так ли?
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32137071
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codeProject будет указывать на проект в котором выполняется программный, т.е. из кода своего проекта пытаться работать с ним бесполезно, но ничто не мешает написать публичные методы для библиотеки, которые будут переподключать ее.
аналогично для кода vba есть CodeContextObject - указывает на контекст выполнения
также как есть CurrenDB and CodeDB, ActiveWorkbook and ThisWorkbook, все из одной серии
-------------------
Кстати, а можно ли подключить несколько библиотечныйх проектов? Library1.ade, Library2.ade и т.д. и на что в таком случае будет указывать codeProject?
конечно можно. codeProject в вашем проекте будет всегда указывать на CurrentProject , а вот в коде библиотек Library1.ade, Library2.ade и т.д. на их контекст соотвественно
...
Рейтинг: 0 / 0
Как определить ConnectionString подключенного модуля?
    #32137328
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SM
В общем -=Alexey=- Вам уже ответил, я только добавлю несколько слов.
По крайней мере, как я это реализовывал.
Для переподключения всех библиотечных модулей, в каждом есть своя функция:

Public Function OpenConn_[имя проекта](strConn as String)
CodeProject.OpenConnection strConn
End Function

В основном проекте цикл по всем ссылкам, если расширение подключенного файла (*.ade), тогда выполняем
Eval ("OpenConn_" & [имя проекта] & " " & CurrentProject.baseConnectionString)

При этом не имеет значения какая авторизация, только для Sql-ной нужно ставить флаг сохранение пароля, иначе не переподключит :(

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

openforms_lib1 "Form1"
If ("Проверка успешного открытия формы") Then
forms!form1!Field1.Visible=False
End if
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как определить ConnectionString подключенного модуля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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