Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / обращение к полю-источнику аргумента функции / 3 сообщений из 3, страница 1 из 1
24.03.2020, 14:03
    #39940549
blackbuster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обращение к полю-источнику аргумента функции
Есть функция вида
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function fAkpYearCheck (cAkpId As Long, fName As String)

Set FRM = Forms(fName)

If Not IsNull(cAkpId) Then
    If Year(DLookup("Akp_data", "Akp", "[akp_id] = " & cAkpId)) <> FRM.God Then 
        cAkpId.SetFocus 'тут функция должна установить фокус на поле-источник аргумента cAkpId. 
    End If
End If
End Function


как правильно обратиться к полю-источнику аргумента cAkpId?
...
Рейтинг: 0 / 0
24.03.2020, 14:51
    #39940580
blackbuster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обращение к полю-источнику аргумента функции
так как функция вызывается на событие После обновления поля, пока обошелся решением
Код: vbnet
1.
2.
3.
4.
5.
If Not IsNull(cAkpId) Then
    If Year(DLookup("Akp_data", "Akp", "[akp_id] = " & cAkpId)) <> FRM.God Then 
        Then Screen.ActiveControl.SetFocus 
    End If
End If

но понимаю, что это криво, так как не будет работать, если, например, функция будет активироваться другим способом.
можно, конечно, перед вызовом функции переместить фокус в нужное поле, но это совсем уж костыли получаются.. должно же быть другое решение
...
Рейтинг: 0 / 0
24.03.2020, 15:28
    #39940604
blackbuster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обращение к полю-источнику аргумента функции
Сам спросил сам ответил :)
В итоге решил в качестве аргумента задать не значение поля, а само поле:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Function fAkpYearCheck(AkpIdName As String, fName As String)

Set FRM = Forms(fName)
Dim cAkpId
cAkpId = FRM.Controls(AkpIdName).Value
If Not IsNull(cAkpId) Then
    If Year(DLookup("Akp_data", "Akp", "[akp_id] = " & cAkpId)) <> FRM.God Then FRM.Controls(AkpIdName).SetFocus
End If
End Function
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / обращение к полю-источнику аргумента функции / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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