Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как нажать на кнопку при помощи VBA / 25 сообщений из 28, страница 1 из 2
03.07.2016, 22:17
    #39267041
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Приветствую
как нажать на кнопку при помощи VBA
нужно именно нажатие кнопки, а не вызов процедуры через функцию
...
Рейтинг: 0 / 0
03.07.2016, 22:33
    #39267044
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Retvisan,

это нужно чтобы две процедуры были разделены, сначала заканчивается одна затем начинается вторая
...
Рейтинг: 0 / 0
03.07.2016, 22:33
    #39267045
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Retvisan,
Очень просто, эта процедура у вас всегда перед глазами, вы её просто так не использовали. Вот к примеру код, при нажатии на кнопку 1 нажимается кнопка 2.

Код: vbnet
1.
2.
3.
4.
5.
Кнопка1_Click ()

Кнопка_2_Click

End Sub
...
Рейтинг: 0 / 0
03.07.2016, 22:53
    #39267052
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Retvisan....вызов процедуры через функцию а это как?
...
Рейтинг: 0 / 0
03.07.2016, 23:26
    #39267059
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
sdku,

может неправильно выразился, когда мы пишем
Function one()
и тут наша процедура
End Function

и мы вызываем потом ее через
Call one
...
Рейтинг: 0 / 0
03.07.2016, 23:42
    #39267063
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Retvisansdku,

может неправильно выразился, когда мы пишем
Function one()
и тут наша процедура
End Function

и мы вызываем потом ее через
Call one

Через функцию кнопку нажать также очень просто, вот к примеру так:

Код: vbnet
1.
2.
3.
4.
5.
Public Function Nazhat(Forma As Form, knopka_name As String)
Set knopka = Forma.Controls(knopka_name)
knopka.SetFocus
SendKeys ("{ENTER}")
End Function



Функцию можете вынести в любой модуль.
...
Рейтинг: 0 / 0
04.07.2016, 02:18
    #39267073
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Retvisan,
Функция создаётся для того, чтоб использовать в любом месте (модуле формы, отчета, передав в нее соответствующие аргументы-в самой же функции нет ссылок на какие-либо объекты или элементы управления-иначе это процедура)поэтому, стесняюсь спросить-
Retvisan.....как нажать на кнопку при помощи VBA.....А почему нельзя обработать какое-либо событие( в VBA что-либо выполнится в ответ на событие)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub My
.....
End sub

Private Sub cmb_Click()
.........
Call my
......
End sub
Private Sub cmb1_Click() ' и т.д для cmbN
.........
Call my
......
End sub
...
Рейтинг: 0 / 0
04.07.2016, 08:24
    #39267090
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
sdku,

Как понять вот этоsdkuв самой же функции нет ссылок на какие-либо объекты или элементы управления-иначе это процедура?

Различие между процедурой и функцией состоит в том,что
– функция возвращает значение,
– процедура - нет.
Ну и, в общем случае, в способе вызова.
...
Рейтинг: 0 / 0
04.07.2016, 10:54
    #39267158
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
__Michelle,
функция,допустим, LEN имеет такой синтаксис: LEN(любойЭлементИзЛюбогоОбъекта,1)
Внутри,в коде,функции LEN нет ссылок на конкретный элемент или объект что дает возможность использовать ее в любом месте, ну и, само-собой разумеется, возвращение значения. Разве процедура типа:
Код: vbnet
1.
2.
3.
Sub U
ctl3=ctl1*ctl2 'где ctl1=2 а ctl2=3
End sub


не запишет в ctl3-6 (что считать "возвращает значение", "не возвращает значение"),а можно так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
function my(a1,a2)
my=a1*a2
End function

Sub nn
ctl3= my(ctl1,ctl2)
end sub


Лично я не вижу необходимости писать функцию для какого-то разового действия
...
Рейтинг: 0 / 0
04.07.2016, 11:00
    #39267162
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
sdku, бред...
...
Рейтинг: 0 / 0
04.07.2016, 11:10
    #39267174
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
sdku,

автор...функция,допустим, LEN имеет такой синтаксис: LEN(любойЭлементИзЛюбогоОбъекта,1)
Внутри,в коде,функции LEN нет ссылок на конкретный элемент или объект...Да-а-а?
А разве эта функция получает первый аргумент ByVal, а не ByRef?
Если ByRef, это и есть ссылка.)))
...
Рейтинг: 0 / 0
04.07.2016, 12:41
    #39267251
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Функция Vba не всегда возвращает обычное значение, грани уже давно стерлись. VBA может возвращать метод, действие. Типов указателей функции множество . Я автору дал рабочий пример ф-ии с SendKeys, непонятно только зачем ему такая конструкция, в шпионов поиграть наверное )
...
Рейтинг: 0 / 0
04.07.2016, 14:18
    #39267338
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Сергей ЛаловФункция Vba не всегда возвращает обычное значение, грани уже давно стерлись. VBA может возвращать метод, действие. Типов указателей функции множество . Я автору дал рабочий пример ф-ии с SendKeys, непонятно только зачем ему такая конструкция, в шпионов поиграть наверное )Придется Вас разочаровать.)))
Там у Вас функция, только описанная словом Function, а по существу это процедура.
И никакого значения она не возвращает - ни обычного, ни необычного.
Просто, как процедура, выполняет (но не возвращает, как Вы пишете) действие.
И использовать ее как функцию, справа от знака равенства, невозможно.
Вернее, возможно, но результатом будет пустота или 0.
Так что, грани, по моим наблюдениям, пока на месте.)))
...
Рейтинг: 0 / 0
04.07.2016, 14:44
    #39267373
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
__Michelle,

Спасибо всем огромное! у меня все заработало!
...
Рейтинг: 0 / 0
04.07.2016, 15:20
    #39267419
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
__MichelleСергей ЛаловФункция Vba не всегда возвращает обычное значение, грани уже давно стерлись. VBA может возвращать метод, действие. Типов указателей функции множество . Я автору дал рабочий пример ф-ии с SendKeys, непонятно только зачем ему такая конструкция, в шпионов поиграть наверное )Придется Вас разочаровать.)))
Там у Вас функция, только описанная словом Function, а по существу это процедура.
И никакого значения она не возвращает - ни обычного, ни необычного.
Просто, как процедура, выполняет (но не возвращает, как Вы пишете) действие.
И использовать ее как функцию, справа от знака равенства, невозможно.
Вернее, возможно, но результатом будет пустота или 0.
Так что, грани, по моим наблюдениям, пока на месте.)))

Да нифига подобного,откройте учебник по алгебре за 7 класс и увидите что обязательным атрибутом функции являются аргументы. У меня в примере аргументы функции это объекты типа форма,и текстовый аргумент название контрола. То же самое я могу проделать и создать процедуру,которая автоматом выполняет те же самые действия. Прочитайте про прекурсоры регулярных выражений в программировании. Про функцию,что она ничего не возвращает,вы также неправы, она возвращает всегда либо истину,либо ложь, независимо от типа самой функции)
...
Рейтинг: 0 / 0
04.07.2016, 15:27
    #39267431
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Сергей Лалов,

Извините, такая каша, что наспех не ответишь.
А мне сейчас нужно важное по работе сделать и с планшета писать не особо удобно.
Вечером, ладно?
...
Рейтинг: 0 / 0
04.07.2016, 16:21
    #39267493
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
__Michelle,
Забейте))
...
Рейтинг: 0 / 0
04.07.2016, 16:28
    #39267500
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Сергей Лалов__Michelle,
Забейте))Ну уж, нет. Никогда.)))
...
Рейтинг: 0 / 0
04.07.2016, 16:36
    #39267509
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Сергей Лалов,

Путаете алгебру и программирование :) Отличие функции от процедуры в возвращаемом значении, а не в аргументах, коих может и не быть. Если тип возвращаемых данных опущен, то в VBA возвращается Variant, а не Boolean. В других языках тип возвращаемого значения по умолчанию может быть другим.
Если объявлена функция, а внутри функции нет присвоения переменной с названием функции, то возвращается Empty, как неинициализированная переменная типа Variant.
Поставить в правую часть равенства процедуру не даст поставить еще компилятор
...
Рейтинг: 0 / 0
04.07.2016, 17:31
    #39267568
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Тут есть еще один нюанс:

http://www.sql.ru/faq/faq_topic.aspx?fid=213
вопрос 15.

Возможно, из-за этого иногда кажется, что в процедуру параметры всегда приходят по значению.
...
Рейтинг: 0 / 0
04.07.2016, 18:46
    #39267621
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Давайте и я еще масло в огонь подолью))




Функции - это процедуры особого вида, результатом работы которых является некоторое значение, подобное переменной.(С- Гетц. Отец основатель аксесса)
...
Рейтинг: 0 / 0
04.07.2016, 19:15
    #39267640
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Сергей Лалов,

Здесь надо заметить особенности перевода. В русском Procedure и Sub переводится одинаково - Процедура. Procedure в оригинале значит "подпрограмма", к коим относятся Sub и Function. Так что если прочесть на английском, то разночтений не будет :)
...
Рейтинг: 0 / 0
04.07.2016, 19:21
    #39267644
Сергей Лалов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
MrShin,

Ну если Гетц не делал разницы между функциями и процедурами ,говоря о том что функция это разновидность процедуры, то и нам стоит так думать:) тем боле что разницы в английском как вы говорите никакой))
...
Рейтинг: 0 / 0
04.07.2016, 19:37
    #39267648
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Оригинала у меня, к сожалению под рукой нет, поэтому напишу примерно, о чем говорил:
"Function is a sort of procedure.... и далее по тексту цитаты"
Sub is also a sort of procedure, which has no return value
Т.е. и Function, и Sub являются процедурами (procedures), но при этом процедура (Sub) - вид процедуры без возвращаемых параметров. Вот эту путаницу я имел в виду :)
...
Рейтинг: 0 / 0
05.07.2016, 14:52
    #39268008
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как нажать на кнопку при помощи VBA
Сергей Лалов__Michelleпропущено...
Придется Вас разочаровать.)))
Там у Вас функция, только описанная словом Function, а по существу это процедура.
И никакого значения она не возвращает - ни обычного, ни необычного.
Просто, как процедура, выполняет (но не возвращает, как Вы пишете) действие.
И использовать ее как функцию, справа от знака равенства, невозможно.
Вернее, возможно, но результатом будет пустота или 0.
Так что, грани, по моим наблюдениям, пока на месте.)))Да нифига подобного,откройте учебник по алгебре за 7 класс и увидите что обязательным атрибутом функции являются аргументы. У меня в примере аргументы функции это объекты типа форма,и текстовый аргумент название контрола. То же самое я могу проделать и создать процедуру,которая автоматом выполняет те же самые действия. Прочитайте про прекурсоры регулярных выражений в программировании. Про функцию,что она ничего не возвращает,вы также неправы, она возвращает всегда либо истину,либо ложь, независимо от типа самой функции)Выбрала, наконец, время ответить.

1. По поводу алгебры, определения функции в программировании и некоторых особенностей вызова процедур
уже исчерпывающе высказались MrShin и Владимир Саныч. Тут добавлять ничего не буду.

2. То, что у Вас "...в примере аргументы функции это объекты типа форма,и текстовый аргумент название контрола." - и так ясно, зачем это подчеркивать?
Только непонятно, зачем передавать имя контрола (а затем мастерить Set knopka = ...), а не сразу ссылку на сам контрол.

3. Что значит "создать процедуру,которая автоматом выполняет те же самые действия"? Особенно непонятно "автоматом".

4. К чему здесь "Прочитайте про прекурсоры регулярных выражений"? Дадите ссылочку, прочитаю.

5. Вот здесь "Про функцию,что она ничего не возвращает,вы также неправы" мне особенно понравилось "также".)))
Где я такое утверждала? Читайте, пожалуйста, внимательнее.
В ответ на Ваше заявление, что функция эта якобы возвращает действие , я написала "выполняет (но не возвращает, как Вы пишете) действие".
О том, что она нечто все-таки возвратит, если поставить ее справа от =, у меня тоже есть "результатом будет пустота или 0".
Обычно Empty, а если присвоить переменной типа, например, Double, будет 0.

Вот Вам и "нифига подобного".)))

Сергей ЛаловДавайте и я еще масло в огонь подолью))

Функции - это процедуры особого вида, результатом работы которых является некоторое значение, подобное переменной.(С- Гетц. Отец основатель аксесса) И чего? О том, что
"Различие между процедурой и функцией состоит в том,что
– функция возвращает значение,
– процедура - нет." в этой теме уже дважды было 19365581 , 19367678 .

А разве Гетц действительно Отец основатель аксесса?
Насколько понимаю, он хороший знаток и популяризатор аксесса. Но Отец основатель...?

И еще. Формулировка Гетца имеет право на существование в его книге (может, там вообще было "..подпрограммы особого вида..."?).
Но не будем забывать, что понятия структурных элементов программ возникли и устоялись
задолго и до появления Access, и до прихода Гетца в программирование. Где-нибудь в 50-60-70-е годы прошлого века.)))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как нажать на кнопку при помощи VBA / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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