Compartir a través de


Propiedad Field2.AllowZeroLength (DAO)

Se aplica a: Access 2013, Office 2013

Establece o devuelve un valor que indica si una cadena de longitud cero ("") es válida para la propiedad Value del objeto Field2 con un tipo de datos Text o Memo (sólo áreas de trabajo de Microsoft Access).

Sintaxis

expresión . AllowZeroLength

expression Variable que representa un objeto Field2.

Comentarios

Para un objeto que aún no se haya anexado a la colección Fields, esta propiedad es de lectura y escritura.

Una vez que se haya anexado a una colección Fields, la disponibilidad de la propiedad AllowZeroLength depende del objeto que contiene la colección Fields, como se muestra en la siguiente tabla.

Si la colección Fields pertenece a

Disponibilidad de AllowZeroLength

Objeto Index

No está admitido

Objeto QueryDef

Solo lectura

Objeto Recordset

Solo lectura

Objeto Relation

No admitido

Objeto TableDef

Lectura y escritura

Puede usar esta propiedad junto con la propiedad Required, ValidateOnSet o ValidationRule para validar un valor de un campo.

Ejemplo

En este ejemplo, la propiedad AllowZeroLength permite al usuario establecer el valor de un objeto Field2 en una cadena vacía. En esta situación, el usuario puede distinguir entre un registro en el que no se conocen los datos y un registro en el que los datos no son aplicables.

    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