Шаг 137 - Свойство AllowZeroLength

Описание
Задает или возвращает значение, указывающее, является ли пустая строка ("") допустимым значением свойства Value объекта Field с типом данных Text или Memo.

Значение
Задаваемое или возвращаемое значение, имеющее тип данных Boolean, показывает, является ли пустые строки допустимым. Свойство имеет значение True, если в объекте Field допускаются пустые строки в качестве значения свойства Value; значением по умолчанию является False.

Замечания
Для объекта, еще не добавленного в семейство Fields, данное свойство доступно для чтения/записи.
После добавления в семейство Fields доступность свойства AllowZeroLength зависит от объекта, в котором содержится семейство Fields, как показано в следующем списке:

Данное свойство используют вместе со свойствами Required, ValidateOnSet или ValidationRule для указания условий на значение поля.

Пример
В следующей программе свойство AllowZeroLength позволяет пользователю задать для поля значение пустой строки. Это позволяет различать записи с неизвестными данными и записи, для которых отсутствуют допустимые данные.

Sub AllowZeroLengthX()

	Dim dbsNorthwind As Database
	Dim tdfEmployees As TableDef
	Dim fldTemp As Field
	Dim rstEmployees As Recordset
	Dim strMessage As String
	Dim strInput As String

	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	Set tdfEmployees = dbsNorthwind.TableDefs("Сотрудники")
	' Создает новый объект Field и добавляет его в семейство 
	' Fields таблицы "Сотрудники".
	Set fldTemp = tdfEmployees.CreateField("ФаксТел", dbText, 24)

	fldTemp.AllowZeroLength = True
	tdfEmployees.Fields.Append fldTemp

	Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")

	With rstEmployees
		' Принимает данные от пользователя.
		.Edit
		strMessage = "Введите номер факса для " & !Имя & " " & !Фамилия & "." & vbCr & _
			"[? - неизвестен, X - нет факса]"
		strInput = UCase(InputBox(strMessage))
		If strInput <> "" Then
			Select Case strInput
				Case "?"
					!ФаксТел = Null
				Case "X"
					!ФаксТел = ""
				Case Else
					!ФаксТел = strInput
			End Select
			.Update

			' Печатает отчет.
			Debug.Print "Имя - Факс"
			Debug.Print !Имя & " " & !Фамилия & " - ";

			If IsNull(!ФаксТел) Then
				Debug.Print "[Неизвестен]"
			Else
				If !ФаксТел = "" Then
					Debug.Print "[Нет факса]"
				Else
					Debug.Print !ФаксТел
				End If
			End If

		Else
			.CancelUpdate
		End If

		.Close
	End With

	' Удаляет новое поле, созданное только для демонстрации.
	tdfEmployees.Fields.Delete fldTemp.Name
	dbsNorthwind.Close
End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 31.03.2002