Добрый день, ребят!
Не могу понять почему 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