-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


You can't reference a property or method for a control unless the control has focus VBA

Среда, 14 Сентября 2016 г. 13:40 + в цитатник
Добрый день, ребят!
Не могу понять почему Access не хочет брать значение.

Форма, на ней объект edit имя у него Edit_Article

В базе хранится запрос, в запросе функция F_art():

SELECT 
a.[ArtSubSys]
, a.ArtName
, a.ArtNameAlt
, a.MainCategoryName
, iif(isnull(o.OrdF)
     ,s.[Доступно]
     ,s.[Доступно]-o.OrdF) AS Аvailable
FROM (Assortment AS a LEFT JOIN Stockreserv AS s 
              ON a.[ArtSubSys]=s.[Subsys артикул]) LEFT JOIN 
                            (
                            select id_sybsys, sum(OrderFact) as OrdF 
                            from OrdersFSD 
                            where Dispatched=0 
                            group by id_sybsys					 
                            )  AS o 
ON a.[ArtSubSys]=o.id_sybsys
WHERE cstr(a.[ArtSubSys]) like F_art()


код функции :
Public Function F_art() As String
       F_art = "*" & Form_Form_Orders.Edit_Article.Text & "*"   
End Function


Проблема возникает в этой фокусировке, когда пользователь нажимает вывести результат запроса, после того как укажет номер артикула в поле Edit_Article, то функция не видит значение в поле, а выдает ошибку .value=null/.text=ошибка.

Пробовал:
Public Function F_art() As String
       F_art = "*" & Form_Form_Orders.Edit_Article.value & "*"   
End Function


Почитал на я и г, пишет о том, что перед получением значения необходимо сделать фокусировку, ок пробовал так:
Public Function F_art() As String
       Form_Form_Orders.Edit_Article.SetFocus
       F_art = "*" & Form_Form_Orders.Edit_Article.value & "*"   
End Function


Тогда он мне ничего не возращает, value=null/text="".

Как эту хрень обойти, после нескольких нажатий в разные места на форме, все работает как часы.
.value=null мне понятно почему, потому что еще значение не присвоено объекту, но как мне получить введеное значение пользователем .text

http://www.sql.ru/forum/1230753/you-can-t-reference-a-property-or-method-for-a-control-unless-the-control-has-focus-vba


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку