Эта ветка и ответы в ней хорошо объясняют проблему. Я хотел бы добавить пару дополнительных моментов, которые я нашел экспериментально:
Порядок приоритета свойств:
.ControlSource
.Value
.Text
Из того, что я видел в Access 2007, если .ControlSource
не определено при открытии формы, .Value
будет Null
.
Если установить для свойства .ControlSource
значение =""
(пустая строка), свойство .Value
по умолчанию будет иметь значение вместо Null
.
Вы можете установить для свойства .Value
значение ""
в событии Form_Load
. Но ... я видел какую-то странную операцию там; кажется, что .Value
иногда меняется с ""
на Null
, и я еще не выяснил обстоятельства.
Так что, кажется, лучше определить от .ControlSource
до =""
, либо в режиме конструктора, либо в событии Form_Load
. Но будьте предупреждены, что niblet хитрый из-за встроенных двойных кавычек, и его может быть сложно читать.
Некоторые способы сделать это:
- myTextbox.ControlSource = "=" & "" "" "(пять двойных кавычек подряд)
- myTextbox.ControlSource = "=" & Chr (34) & Chr (34)
- и т. Д., Есть много способов сделать это ...
Кроме того, вот расширенный лакомый кусочек. Если вы установите для свойства .TextFormat
значение Rich Text
, вы можете отформатировать текст в нем жирным шрифтом, курсивом, цветами и т. Д. Но имейте в виду (снова), начиная с Office 2007, исходный формат Microsoft RTF был списан в пользу «мини» версии HTML, которая поддерживает только несколько тегов, связанных с форматированием шрифтов и абзацев.
В качестве примера, скажем, вы хотите, чтобы в текстовом поле отображался маленький символ флажка ASCII со словом «действительный» курсивом рядом с ним, и все это было зеленым. Вы можете сделать это, но все это должно быть в HTML, и это не легко прочитать:
myTextbox.TextFormat = acTextFormatHTMLRichText
myTextbox.ControlSource = "=" & Chr(34) & "<font color=#80CA45><font face=Wingdings>" & _
Chr(254) & "</font> <font face=Calibri><i>Valid.</i></font></font>" & Chr(34)