Установить значение по умолчанию текстового поля для запроса результата vba - PullRequest
0 голосов
/ 25 июня 2019

Я нашел эту статью Установите значение по умолчанию для текстового поля равным результату запроса Я пытаюсь использовать следующий код, но получаю сообщение об ошибке.Имя запроса - MaxNote, а затем Поле, восстановленное в запросе, - MaxNote.

Public Function MaxNote()
       MaxNote = CurrentDb.OpenRecordset("MaxNote").Fields("MaxNote")
End Function

Ответы [ 3 ]

1 голос
/ 26 июня 2019

Используйте DLookup для таких простых задач и обратите внимание, что DefaultValue является текстом, и используйте Nz , если MaxNote может быть Null :

Me!YourTextbox.DefaultValue = Chr(34) & LTrim(Nz(Str(DLookup("MaxNote", "MaxNote")))) & Chr(34)
0 голосов
/ 27 июня 2019

Здесь On Error Resume Next может быть полезным, поскольку ошибка указывает на пустой результат.

Public Function MaxNote() as Variant
       MaxNote = "" ' default return value for not records found. Can be NULL or 0 too
   On Error Resume Next ' if lookup fails code resumes next line, what is End Function (nothing happens)
       MaxNote = CurrentDb.OpenRecordset("MaxNote").Fields("MaxNote") ' fetch the field from first row of recordset (standard after .OpenRecordSet() ), if no results an error is raised, but function resumes next line of code, what ends the function and still with MaxNote = "", the value if no records are found
End Function
0 голосов
/ 25 июня 2019
Public Function MaxNote()
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("MaxNote") 
    rst.MoveFirst
    MaxNote = rst.Fields("MaxNote")
End Function

Попробуйте это, если вы предпочитаете первое открытие вместо DLookup

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...