powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Модуль и вызов метода
15 сообщений из 15, страница 1 из 1
Модуль и вызов метода
    #32307425
Tamara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйста! Получаю ссылку на определенный модуль по имени,
который ссчитываю из комбобокса:
Dim md As Module,sName As String

sName = Me.cboTable.Column(1)
Set md = Modules(sName)
Пытаюсь через точку вызвать Public метод из этой формы - не понимает!
md.Transfer
Что делать?
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307439
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачэм так?

если в модуле есть
public sub ИмяПроцедуры
- ее видно просто как процедуру
и запускать так же

ИмяПроцедуры параметр1, параметр2 и т.д.
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307440
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Что значит не понимает? Какую ошибку выдает? И при компиляции это происходит или при исполнении?

Это модуль формы, модуль класса или просто модуль? Как написано в комбобоксе его имя?
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307456
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это
а) просто модуль - то никак. да наверное и не зачем. можно просто так public функцию вызвать (см. пост Alexus12)
б) модуль класса - никак, ибо не получится создать экземпляр этого класса имея только строковое название
в) модуль формы -
Код: plaintext
1.
DoCmd.OpenForm sName ' На случай если форма еще не открыта '
Forms(sName).Transfer
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307473
Tamara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч. Что значит не понимает? Какую ошибку выдает? И при компиляции это происходит или при исполнении?

Это модуль формы, модуль класса или просто модуль? Как написано в комбобоксе его имя?

Это обычный модуль. Мне надо вызвать из разных модулей процедуру с одним названием - Transfer. Заранее имя модуля не знаю, выбираю его как стринг из
комбобокса. Во время компиляции он не ругается, но после md. всплывающей подсказки не получаю. Во время исполнения ошибка - Method or data not found
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307496
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> после md. всплывающей подсказки не получаю.

Это нормально, потому что md описано как Module, т.е. до исполнения Аксесс не знает, на какой именно модуль сошлется эта переменная и какие методы там будут.

> Во время исполнения ошибка - Method or data not found

Могу предложить переописать этот метод как Function и обратиться к нему так:

Eval(sName & ".Transfer")
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307504
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч писал:Могу предложить переописать этот метод как Function и обратиться к нему так:
Eval(sName & ".Transfer")
Саныч, а самому попробовать?
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307517
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Саныч, а самому попробовать?

А кому нужнее? :^))) Я, сорри, сижу на работе и делаю два срочных проекта. Спасибо мне уже за то, что я периодически заглядываю в форум и кидаю идеи. Если идея негодная - прошу прощения, но я и сказал, что надо попробовать.
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307539
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, написать у себя в любом месте
Eval "Moдуль1.Test()"
и убедиться что оно не работает - это быстрее, чем написать сюда пост из кучи буквачек. Я же твое время пытаюсь экономить
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307549
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А у меня Аксесс закрыт. :^) Проекты - один на VB, а другой на . NET.
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307636
Tamara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо всем, кто отвечал!!!
Отдельное спасибо Владимиру Санычу - совет очень помог!!!
Я чуть-чуть его видоизменила:
Назвала в каждом из многочисленных модулей функцию не Transfer, а уникально, но в соответствии со стрингами из комбобокса. А дальше:

Eval (sName & "()")
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307655
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Tamara:

Да, действительно так получается... А я бы сделал не несколько процедур с разными именами, а одну с параметром. :^)
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307678
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Истину глалолет великий Саныч
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307702
Tamara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так сделать сложно - функции слишком отличаются - это трансфер каждой таблицы из Акссесной базы в MSDE (Разные поля, типы данных и т. д.) К тому же их писала не я, а мастер DTS (запускала из Entepr. Man.) ...Можно, конечно, но долго возиться.
...
Рейтинг: 0 / 0
Модуль и вызов метода
    #32307709
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
С другой стороны, не хочется писать:

Код: plaintext
1.
2.
3.
4.
5.
Select Case sParam
    Case  "aaa" : aaa
    Case  "bbb" : bbb
    Case  "ccc" : ccc
    'и так 10 000 раз'
End Select


Права Тамара - надо как-то добиться, чтобы было достаточно написать

Код: plaintext
Eval(sParam)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Модуль и вызов метода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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