|
|
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ? Например, есть VB приложение My1.exe и XLS файл X.xls , хочу при выполнении My1.exe передать объект MyObject (созданый здесь же в My1.exe ) в Public переменную Public P as Object , находящуюся в одном из модулей X.xls ( ну или в другой какой контейнер вместо P переменной, - не знаю какой). После чего запустить X.xls (ну это не проблема), чтобы он работал уже с только что установленым значением P . PS. ( Ну или вместо X.xls может выступать другое Vb приложение My2.exe ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 00:18:02 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
какой класс выступает в качестве Object? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 13:17:22 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
Так я не конкретизирую - любой значит . Вообще для данного случая ADODB.Connection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 18:32:59 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
yunikiТак я не конкретизирую - любой значит . Вообще для данного случая ADODB.Connection. Без извратов - никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 20:24:04 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
yunikiТак я не конкретизирую - любой значит . Вообще для данного случая ADODB.Connection. 2 yuniki в данном случае и передай как ADODB.Connection. только ссылку на АДО не забудь в поставить во всех потребных местах. а не конкретизировать не получится. потому как весь сом на идее согласования интерфейсов построен. '-------------------------------------------- все нижеследующее написано для nibbles (кроме последнего предложения) '-------------------------------------------- "вообще" (без извратов) это делается так: 0) Созданным объектом владеет создатель. И с уничтожением процесса-создателя будет уничтожен и созданный им объект (или попытка уничтожения процесса-создателя провалится) Это значит, что номер - "отдать созданный экземляр и завершить свое исполнение" - не пройдет. Создатель будет вынужден поддерживать свое существование, пока в этом заинтересован хоть один из реципиентов. 1) Интерфейс передаваемого объекта должен быть известен обоим приложениям. (Например, он должен быть описан в tlb-описателе, известном на этапе компиляции обоим приложениям). 2) Если приложение - создатель несет полную ответственность за детали реализации класса-реализатора. то класс-реаализатор обязан implements маршаллируемых (межпроцессно-передаваемых) свойств и методов. 3) наилучшим кандидатом для реализации такого класса применительно к варианту взаимодействия exe-exe, по умолчанию является класс формы. 2 2 nibbles а "с извратами" - как ? Последнее предложение: Если все вышеизложенное по любым причинам не устраивает yuniki, значит он неправильно сформулировал свой вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 21:25:09 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
Victosha2 2 nibbles а "с извратами" - как ? Например, запись строки подключения в одну из ячеек рабочей книги с последующим считыванием оттуда. Victosha yunikiТак я не конкретизирую - любой значит . Вообще для данного случая ADODB.Connection. 2 yuniki в данном случае и передай как ADODB.Connection. только ссылку на АДО не забудь в поставить во всех потребных местах. а не конкретизировать не получится. потому как весь сом на идее согласования интерфейсов построен. Как будет выглядеть "и передай как ADODB.Connection" на практике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 21:58:29 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
2 nibbles > Например, запись строки подключения в одну из ячеек рабочей книги с последующим считыванием оттуда. Ну, какие же это извраты, - это обычный штатный способ : Dim XlApp As Excel.Application, xlBook As Excel.Workbook, Rng As Excel.Range Set xlApp = CreateObject("Excel.Application") ' Создание НОВОГО экземпляра Set xlBook = xlApp.Workbooks.Add xlApp.Range("$A$2") = "asfdasdfasdfasf" Просто , а если надо в Vb приложение, где нет такой ячейки, которая примет мою строку, или передать надо не строку а как написал - объект. 2 Victosha > а не конкретизировать не получится. потому как весь сом на идее согласования интерфейсов построен. Так а если dim P as Object (см. первый пост) Вообще, нельзя ли объяснить попонятнее, с каким-нибудь простым примером - шаблоном. А то , как- то не могу монять, что же надо сделать. Пусть надо передать ссылку на объект ADODB.Connection из VB приложения, где он создан, в новый XLS файл - т.е. вначале , видимо, создать объект Set xlApp = CreateObject("Excel.Application"), как в примере выше и далее, оттталкиваясь от XlApp, что надо сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 23:18:33 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
2 yuniki Вы уж определитесь, сударь - Вам в новый или "по шаблону" (выкладываю "по шаблону") 2nibbles, с некоторыми запятыми - примерно так (к коннекшну применительно) (разветь, надеюсь, ясно куда и как...) (по счастью, реализация на стороне "сервера" не требуется...) (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 23:26:01 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
Victosha2 yuniki Вы уж определитесь, сударь - Вам в новый или "по шаблону" (выкладываю "по шаблону") 2nibbles, с некоторыми запятыми - примерно так (к коннекшну применительно) (разветь, надеюсь, ясно куда и как...) (по счастью, реализация на стороне "сервера" не требуется...) База не открывается (неизвестный формат - у меня Acc'2000), но принцип понятен - интересный метод. Не понял насчет запятых - что имелось ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 23:57:57 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
nibbles Victosha2 yuniki Вы уж определитесь, сударь - Вам в новый или "по шаблону" (выкладываю "по шаблону") 2nibbles, с некоторыми запятыми - примерно так (к коннекшну применительно) (разветь, надеюсь, ясно куда и как...) (по счастью, реализация на стороне "сервера" не требуется...) База не открывается (неизвестный формат - у меня Acc'2000), но принцип понятен - интересный метод. Не понял насчет запятых - что имелось ввиду? запятые - 1) приложение-создатель соединения - оно же создает экземпляр рекордсета. Если создать новый экземпляр рекордсета в Эксель, а коннекшн пепедавать извне - то ничего не получится. (АДО отображается на текущее приложение и тогда вновь созданный экземпляр рекордсета "не найдет" "своего" объекта соединения.) 2) вообще говоря, (по крайней мере применительно к VB), тема чуть тоньше. Минимально необходима совместимость по описателям библиотек (tlb). в самом общем случае, желательна (а иногда обязательна) общеизвестность интерфейса/ов на уровне системы (он должен быть зарегистрирован в реестре). В "сложных" случаях может потребоваться activeX exe как точка взаимодействия. PS примыкает к теме - dde, передача информации через мапированные файлы. (однако "в данном случае" все это ни к чему...) ЗЫ2 прикладываю мдб в формате 2К ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2005, 00:23:19 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
2 Victosha > Спасибо! С Excel и иже с ним все ясно - про метод Application.RUN я и подзабыл. Он сильно выручает в данном случае. А как быть если надо передать не в VBA с их Application.RUN, а в другой VB екзешник? Какие там будут ключевые слова. PS Victosha2 yuniki Вы уж определитесь, сударь - Вам в новый или "по шаблону" (выкладываю "по шаблону") (с выражением лица) Не понял только причем здесь " в новый " и какое "выражение лица" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2005, 12:13:02 |
|
||
|
Можно ли и как Передать ссылку на объект от одного VB или VBA приложения другому ?
|
|||
|---|---|---|---|
|
#18+
Кстати, напоролся тут еще на одну проблему : Если попытаться в вызываемом Excel использовать свой(не переданный) Recordset, то выходит облом : Вот вызов из Access, но из Vb приложения точно также( даже с MDB базой) Вызов Из ADP Access2K Excel2K : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В TestCnn.xls : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Да , строка связи CurrentProject.Connection : Provider=MSDataShape.1;Persist Security Info=False;Data Source=YUNIK\MSTEST; User ID=sa;Initial Catalog=Ломбард;Data Provider=SQLOLEDB.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2005, 12:15:33 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32996055&tid=2167977]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 385ms |

| 0 / 0 |
