Propriedade Field.AllowZeroLength (DAO)
Aplica-se ao: Access 2013, Office 2013
Define ou retorna um valor que indica que a sequência de comprimento zero ("") é uma configuração válida para a propriedade Value do objeto Field com um tipo de dados Texto ou Memorando (apenas espaços de trabalho do Microsoft Access).
Sintaxe
expressão . AllowZeroLength
expressão Uma variável que representa um objeto de Campo.
Comentários
Para um objeto ainda não acrescentado à coleção Fields, essa propriedade é de leitura/gravação.
Depois de acrescentado a uma coleção Fields, a disponibilidade da propriedade AllowZeroLength depende do objeto que contém a coleção Fields, como mostrado na tabela a seguir.
Se a coleção Fields pertencer a |
AllowZeroLength será |
---|---|
Objeto do Índice |
Sem suporte |
Objeto QueryDef |
Somente leitura |
Objeto Recordset |
Somente leitura |
Objeto Relation |
Sem suporte |
Objeto TableDef |
Leitura/gravação |
Você pode usar essa propriedade junto com a propriedade Required, ValidateOnSet ou ValidationRule para validar um valor em um campo.
Exemplo
Neste exemplo, a propriedade AllowZeroLength permite que o usuário defina o valor de um Field para uma sequência vazia. Nessa situação, o usuário pode distinguir entre um registro em que os dados são desconhecidos e um registro em que dos dados não se aplicam.
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("Northwind.mdb")
Set tdfEmployees = dbsNorthwind.TableDefs("Employees")
' Create a new Field object and append it to the Fields
' collection of the Employees table.
Set fldTemp = tdfEmployees.CreateField("FaxPhone", _
dbText, 24)
fldTemp.AllowZeroLength = True
tdfEmployees.Fields.Append fldTemp
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees")
With rstEmployees
' Get user input.
.Edit
strMessage = "Enter fax number for " & _
!FirstName & " " & !LastName & "." & vbCr & _
"[? - unknown, X - has no fax]"
strInput = UCase(InputBox(strMessage))
If strInput <> "" Then
Select Case strInput
Case "?"
!FaxPhone = Null
Case "X"
!FaxPhone = ""
Case Else
!FaxPhone = strInput
End Select
.Update
' Print report.
Debug.Print "Name - Fax number"
Debug.Print !FirstName & " " & !LastName & " - ";
If IsNull(!FaxPhone) Then
Debug.Print "[Unknown]"
Else
If !FaxPhone = "" Then
Debug.Print "[Has no fax]"
Else
Debug.Print !FaxPhone
End If
End If
Else
.CancelUpdate
End If
.Close
End With
' Delete new field because this is a demonstration.
tdfEmployees.Fields.Delete fldTemp.Name
dbsNorthwind.Close
End Sub