Compartilhar via


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