Este hilo y las respuestas a este documento explican bien el problema. Hay un par de puntos adicionales Me gustaría añadir, que he encontrado a través de la experimentación:
El orden de precedencia de las propiedades es:
.ControlSource
.Value
.Text
Por lo que he estado viendo en Access 2007, si .ControlSource
no está definido cuando el formulario abre, .Value
será Null
.
Si se establece la propiedad .ControlSource
a =""
(una cadena vacía), que hará que la propiedad .Value
por defecto a que en lugar de Null
.
Puede establecer la propiedad .Value
en ""
en el evento . Pero ... he estado viendo alguna operación errática allí; parece como si .Value
a veces cambia de ""
a Null
, y aún no he resuelto las circunstancias.
Parece mejor definir .ControlSource
en =""
, ya sea en la Vista de diseño o en el evento . Pero se prevenido, ese niblet es complicado debido a las comillas dobles incrustadas, y puede ser difícil de leer.
Algunas formas de hacerlo son:
- MyTextBox.ControlSource = "=" & "" """(cinco comillas dobles en una fila)
- myTextbox.ControlSource = "=" & Chr (34) & Chr (34)
- etc, etc, hay muchas maneras para hacerlo ...
Además, aquí es un dato extendido. Si se establece la propiedad .TextFormat
a Rich Text
, puede dar formato al texto en él con negrita, cursiva, colores, etc, pero te aviso (una vez más) , comenzando con Office 2007, el formato original de Microsoft RTF se desmanteló a favor de una versión "mini" de HTML que solo admite algunas etiquetas relacionadas con el formato de fuentes y párrafos.
Como ejemplo, supongamos que desea que el cuadro de texto muestre el carácter de casilla de verificación ASCII con la palabra "válido" en cursiva al lado y que todo sea verde. Puede hacerlo, pero todo tiene que estar en HTML, y no es fácil de leer:
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)
Nótese también que .text está limitada a 2048 caracteres, mientras que .value puede tener hasta 60k caracteres. –