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