powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не отрабатывается параметр в функции
25 сообщений из 30, страница 1 из 2
Не отрабатывается параметр в функции
    #39092056
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Вызываю в процедуре функцию, передаю ей параметр - не работает.
Останавливаю функцию - параметр передается, но не отрабатывается. Уходит все время на True.
Причем если задавать параметр текстовым, то все работает. Если тип любой другой - не работает.
Что делаю не так?

Код: vbnet
1.
2.
3.
Option Compare Database
Option Explicit
Dim Color_FT As Boolean



Код: vbnet
1.
2.
3.
4.
Private Sub FT_OD_1_Enter()
Color_FT = True 
Call ColorFT(Color_FT)
End Sub



Код: vbnet
1.
2.
3.
4.
Private Sub FT_OD_2_Enter()
Color_FT = False
Call ColorFT(Color_FT)
End Sub



Public Function ColorFT(Color_FT As Boolean)
Select Case Color_FT
Case Color_FT = False
...
Case Color_FT = True
...
End Select
End Function
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092063
8772
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БанджоPublic Function ColorFT(Color_FT As Boolean)
Select Case Color_FT
Case Color_FT = False
...
Case Color_FT = True
...
End Select
End Functionкрасное - убрать
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092068
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь тоже - все красное убрать.Банджо
Код: vbnet
1.
2.
3.
Option Compare Database
Option Explicit
Dim Color_FT As Boolean



Код: vbnet
1.
2.
3.
4.
5.
Private Sub FT_OD_1_Enter()
Color_FT = True
Call ColorFT(Color_FT)
Call ColorFT(True) ' это вставить
End Sub



Код: vbnet
1.
2.
3.
4.
5.
Private Sub FT_OD_2_Enter()
Color_FT = False
Call ColorFT(Color_FT)
Call ColorFT(False) ' это вставить
End Sub



Public Function ColorFT(Color_FT As Boolean)
Select Case Color_FT
Case Color_FT = False
...
Case Color_FT = True
...
End Select
End Function
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092077
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
8772красное - убрать
Да... чет я совсем того.. спасибо
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092079
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, да, я так тоже писал, но поскольку не работало, уже полный код вставил, думаю что ж такое.. (.
Теперь верну короткий. Спасибо.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092081
Банджо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle, а вот
Dim Color_FT As Boolean
почему убрать? Ее ж надо объявить? Или в самой функции достаточно?
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092086
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банджо__Michelle, а вот
Dim Color_FT As Boolean
почему убрать? Ее ж надо объявить? Или в самой функции достаточно????!!!
Это совершенно разные Color_FT.
То, что объявлено в общей области, нигде, судя по коду, не используется.

Дополнительно;
В процедурах обработки событий Вход/Выход только вызов функции?
Тогда почему не прописать это не в VBA, а просто в конструкторе =ColorFT(True)/=ColorFT(False) ?
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092150
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mina Anna Mazzini__Michelle,

и все-таки хотелось бы услышать начальника транспортного цеха...

18335125
18355293
.)))
По второму пункту - абсолютно согласна с 8772.
Просто не стала убирать из текста ТС, ведь уже было сказано.

По первому - отвечу чуть позже, сейчас срочно убегаю...
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092298
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удивительное дело!
Собралась ответить, а исходного сообщения-то и нет...
Что такое, неужели новый виток Звездных Войн?
Ощущение странноватое: то ли зыбучие пески, то ли Кафка...
Может, модераторам стоит оставлять пометку типа "Очищено по такой-то причине..."?

Но, к делу.

Mina Anna Mazzini,

1. Сначала уточнения и дополнения по второму пункту -
там Select Case для всего двух вариантов, True и False, поэтому я бы ограничилась конструкцией
If Color_FT Then
......
Else
......
End If
2. Так. Только что для ответа по первому пункту хотела освежить в памяти его формулировку.
Но там тоже все стерто. Господа модераторы, что это?
Ладно, попробую, как помню.
- Сначала было о том, что, согласно best practice, нужно не If z = True Then, а If z Then.
Да. Именно так всегда и делаю.
Но там шла речь о баге Access, нейтрализовывался который добавлением "= True".
То есть, это была вынужденная мера.
- Потом предлагалось использовать CBool(z).
Вообще-то там дело было не в том, что неверно распознается z как Boolean, ведь программа отрабатывала нормально.
Но в конце не закрывался Access.
Но проверить бы не мешало.
Только для этого нужно найти машину с Acc97, так как это его баг. И чтобы ситуация воспроизводилась.
Пока не удалось. Даже поставила на ноутбук Acc97, но ошибка не возникает, может, потому, что Win 7.
Но я об этом помню, при возможности проверю.

Надеюсь, текст дойдет по назначению.)))
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092320
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleНо там шла речь о баге Access, нейтрализовывался который добавлением "= True".Баг? Ну незнаю... ИМХО, дело в неправильном написании.
Код: vbnet
1.
If Me.z.Value Then


VBA многое "прощает"...
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092368
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург__MichelleНо там шла речь о баге Access, нейтрализовывался который добавлением "= True".Баг? Ну незнаю... ИМХО, дело в неправильном написании.
Код: vbnet
1.
If Me.z.Value Then


VBA многое "прощает"...Явное указание Me, как и явное указание Value , не является обязательным .
У меня их отсутствие никогда не приводило к погрешностям в работе программы.
Однако, при возможности, проверю и эту версию. Хотя бы для того, чтобы ее исключить.
Но только для Value, так как баг проявляется при Parent, забыла сразу пояснить.

Что касается "баг-не баг", то вот, пожалуйста, что об этом на rusimport, hiprog, cyberforum:
http://am.rusimport.ru/MsAccess/topic.aspx?ID=107 Не закрывается окно Access. Официальная ошибка Microsoft.
http://hiprog.com/index.php?option=com_content&task=view&id=146 Не закрывается окно ACCESS... Это действительно глюк, но исправимый.
http://www.cyberforum.ru/ms-access/thread473289.html это ошибка самого Microsoft Access.
И, конечно, на sql.ru Аccess не закрывается Речь идет о баге.
При этом в статьях по этим ссылкам практически везде используют полный синтаксис типа Me.Parent.chkBox (правда, без Value).
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092396
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleЯвное указание Me, как и явное указание Value , не является обязательным .То, что свойство Value в данном случае необязательно к употреблению соглашусь, т.е. это свойство по умолчанию.
Просмотрев по диагонали вышеприведённые ссылки, ещё больше укрепился во мнении, что требуется делать так 18356933 . Видимо там действительно баг со свойством по умолчанию. Получают не свойство контрола, а сам контрол, ИМХО. Сами же себе раскладываем грабли...
Никогда не игнорирую обращение внутри класса к самому себе через Me. Мне нетрудно написать пару-тройку знаков. Да и код становится структурированным и легкочитаемым.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092407
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Панург]__MichelleВидимо там действительно баг со свойством по умолчанию. Получают не свойство контрола, а сам контрол, ИМХО. Мне кажется, тогда возникла бы ошибка времени выполнения.
Но этого не было.
И только в самом конце - окно Access висит, закрывается только из диспетчера задач.

Жаль, что пока негде проверить.
Вдруг, Вы правы...
Тогда действительно мой подход "все, что можно игнорировать - игнорировать"
нужно заменить на Ваш "все, что можно указать - указать".
Интересно, конечно.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092410
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня ошибка в цитировании. Правильно так:ПанургВидимо там действительно баг со свойством по умолчанию. Получают не свойство контрола, а сам контрол, ИМХО.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092429
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleЯвное указание Me, как и явное указание Value , не является обязательным .
Это верно. НО...
Во-первых, явное их указание конкретизирует требуемый объект. Устранение неоднозначности - всегда благо. Попробуйте загрузить несколько экземпляров формы (особенно MDI) и обращаться к её контролам без указания родительского экземпляра - не ёкнет?
Во-вторых, надеяться на умолчания как минимум опасно. Представьте, что мы отсабклассили контрол - где гарантия, что свойство по умолчанию таковым и останется?
Эти самые "необязательно" мной, например, однозначно воспринимаются как "медвежья услуга". Такая же, как неявное описание переменных или неявное приведение типов. Легко можно получить практически неловимый косяк, просто потому, что сработала спрятанная от тебя логика - оно надо? со своей бы не запутаться.
Кстати, по тем же (и некоторым другим) причинам я всегда рекомендую не экономить объектные переменные.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092436
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleТогда действительно мой подход "все, что можно игнорировать - игнорировать"
нужно заменить на Ваш "все, что можно указать - указать".
Интересно, конечно.Ну уж нет, фанатизма такого у меня нет. Я широко использую сокращение кода на свойствах по умолчанию. Более того, сам прописываю такие свойства в классах, когда часто приходится пользоваться определённым свойством самописного класса.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092439
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, хорошо сказал! Полностью поддерживаю.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092445
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТруА то я что-то не могу соотнести с жизнью... Если речь идет об As Object, то меня их вообще нет. За крайне редким исключением, когда я пишу, к примеру, какую-нибудь универсальщину, и не знаю - какой контрол будет передан в обрабатывающую ф-ция.Не пользуешься поздним связыванием?
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39092453
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТруПанургпропущено...
Не пользуешься поздним связыванием?
Практически нет.Значит и Object ненужен, хватит Control .
Часто использую конструкцию With ... End With вместо Object .
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39093060
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересное и полезное для меня обсуждение.
Спасибо всем!

Конечно, хотелось бы знать и применять позднее связывание.
При переводе из одной версии в другую часто приходится вручную переопределять отвалившиеся библиотеки.
При позднем связывании этого не потребуется?
Еще интересует, работает ли оно в MDE?
Я пока совершенно не представляю, что это такое.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39103752
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаюсь к обсуждаемому выше багу прошлых лет -
зависанию окна Access при завершении работы,
если в программе использовалась конструкция If Parent.z Then,
где Parent.z - флажок в родительском окне.

Нашлась машина, где эту ситуацию удалось воспроизвести.
Проверила предложения по исправлению от
Mina Anna Mazzini - использовать CBool(Parent.z)
и
Панург - использовать Parent.z.Value.

Результат: оба способа прекрасно действуют - Access не зависает.

Вот что значит, уметь зреть (зрить?) в корень!

P.S.
Но жаль, что некоторые сообщения на эту тему здесь удалены.
Было что-то интересное от Mina Anna Mazzini о разнице в трактовке флажка VB и VBA.
P.P.S. Ну, и заодно.
В теме Помогите составить SQL-запрос также было удалено сообщение Mina Anna Mazzini с вопросом,
почему в качестве фиктивной таблицы предлагается использовать msysobjects, а не к.-л. реальную таблицу запроса.
Вроде пустяк, ответ, видимо, что-то вроде "так исторически сложилось"...
А вот и нет. У ТС с msysobjects не сработало, а с таблицей запроса - да.
Почему, так и повисло в воздухе...

Понимаю, что чистится под горячую руку, но все же, не в ущерб бы общему смыслу...
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39103831
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle...
Результат: оба способа прекрасно действуют - Access не зависает.
...

Особливо прекрасно, когда значение флажка Null.
:)
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39103849
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,

Ну не знаю, я всегда ставлю значение по умолчанию - чаще всего требуется False.
Но ведь при Null, без Nz(...) всегда будет Invalid use of Null, независимо от версии Access,
это будет стандартная ошибка времени исполнения.
Это к рассматриваемому вопросу не относится.
А баг, о котором речь, был характерен для Acc97, у меня под Win XP, под Win 7 не обнаруживается.
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39103891
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle...
Но ведь при Null, без Nz(...) всегда будет Invalid use of Null, независимо от версии Access, ...
Не всегда.
Во всяком случае не на моем А2003 SP3.
В варианте от Панург, например:
Код: vbnet
1.
2.
3.
4.
5.
    If flg.Value Then
        Debug.Print "true"
    Else
        Debug.Print "else"
    End If
...
Рейтинг: 0 / 0
Не отрабатывается параметр в функции
    #39103901
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Predeclared,

Хорошо. Интересно.
Сегодня проверю.
На Acc2003 SP3 под Win7 и на Acc97 под XP.
О результатах сообщу.)))
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не отрабатывается параметр в функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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