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

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

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

Кнопка_2_Click

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

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

и мы вызываем потом ее через
Call one
...
Рейтинг: 0 / 0
как нажать на кнопку при помощи VBA
    #39267063
Фотография Сергей Лалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как нажать на кнопку при помощи VBA
    #39267073
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
как нажать на кнопку при помощи VBA
    #39267090
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

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

Различие между процедурой и функцией состоит в том,что
– функция возвращает значение,
– процедура - нет.
Ну и, в общем случае, в способе вызова.
...
Рейтинг: 0 / 0
как нажать на кнопку при помощи VBA
    #39267158
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__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
как нажать на кнопку при помощи VBA
    #39267162
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku, бред...
...
Рейтинг: 0 / 0
как нажать на кнопку при помощи VBA
    #39267174
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

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

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

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

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

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

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

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




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

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

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

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

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

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

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

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

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

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

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

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

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


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