|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
VBA Может ли функция перед тем как возвращать значение вызвать процедуру, но при этом продолжать свою работу, а вот процедура при этом должна подождать полного завершения работы функции и только после этого начать свою работу? Объясню на примере: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 07:19 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
Это многопоточность. Если ваши функции будут в отдельном потоке то всё получится. Задача вообще какая стоит, ради чего это надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 07:49 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
studieren, как вариант (если это VBA): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 08:16 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
Green2Это многопоточность. Если ваши функции будут в отдельном потоке то всё получится. Задача вообще какая стоит, ради чего это надо? Для решения одной частной задачки в MS Access мне требуется подобная функция. А как реализовать в VBA многопоточность? DoEvents? .Михаил., Ваш вариант мне чуть-чуть не подходит, ибо в MS Access нет возможности на "Application.OnTime". Там нет такого метода. А ради него не хочется подключаться к Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 08:33 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
А может быть есть какая-та Win API функция, работающая как "Application.OnTime"? Никто не подскажет? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 08:38 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
studieren, если у вас Access, то я перенесу топик в соответсвующий форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 10:28 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
big-dukestudieren, если у вас Access, то я перенесу топик в соответсвующий форум. Но вопрос-то по большому счёту касается только VBA? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 11:19 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
studierenGreen2Задача вообще какая стоит, ради чего это надо? Для решения одной частной задачки в MS Access мне требуется подобная функция. А как реализовать в VBA многопоточность? DoEvents? Без задачки все равно непонятно, почему нельзя сделать Код: plaintext 1. 2. 3. 4.
И чем вас не устраивает DoEvents в пустом цикле процедуры тоже непонятно ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 11:40 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
Кажется вот это 9787536 больше подойдёт. Там код с Win API функциями. Попробую экспериментировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 11:47 |
|
VBA: сложная функция
|
|||
---|---|---|---|
#18+
Shocker.ProБез задачки все равно непонятно, почему нельзя сделать Код: plaintext 1. 2. 3. 4.
И чем вас не устраивает DoEvents в пустом цикле процедуры тоже непонятно Задачку не могу описать здесь, тогда точно модератор выгонит топик в MS Access. Модератор: Не говорите ерунды. Это было лишь предложение перейти в Access. Поменять местами функцию и процедуру также не подходит. Я наверное неправильно (не точно) написал ТЗ: функция не только должна возвращать значение, но также прекратить свою работу. Мне просто "DoEvents" без подтверждения завершении работы функции также не интересно. Для этого пожалуй использую "flag" как посоветовал .Михаил. Т.е. внутри функции в самом начале будет "flag = True", а перед самым завершением напишу "flag = False". А процедура проверит значение flag, если оно true, значит функция всё-ещё работает, а если false, вот здесь процедура начнёт основную свою работу. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2011, 12:11 |
|
|
start [/forum/topic.php?fid=60&fpage=108&tid=2158966]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 143ms |
0 / 0 |