FieldSize Property
Applies To
Field object.
Description
Returns the number of bytes used in the database (rather than in memory) of a Memo or Long Binary Field object in the Fields collection of a Recordset object.
Return Values
The return value is a Long that indicates the number of characters (for a Memo field) or the number of bytes (for a Long Binary field).
Remarks
You can use FieldSize with the AppendChunk and GetChunk methods to manipulate large fields.
Because the size of a Long Binary or Memo field can exceed 64K, you should assign the value returned by FieldSize to a variable large enough to store a Long variable.
To determine the size of a Field object other than Memo and Long Binary types, use the Size property.
Note In an ODBCDirect workspace, the FieldSize property is not available in the following situations:
- If the database server or ODBC driver does not support server-side cursors.
- If you are using the ODBC cursor library (that is, the DefaultCursorDriver property is set to dbUseODBC, or to dbUseDefault when the server does not support server-side cursors).
- If you are using a cursorless query (that is, the DefaultCursorDriver property is set to dbUseNoCursor).
For example, Microsoft SQL Server version 4.21 does not support server-side cursors, so the FieldSize property is not available.
See Also
AppendChunk method, GetChunk method, Size property, Type property.
Specifics (Microsoft Access)
The DAO FieldSize property is different from the Microsoft Access FieldSize property, which is set in table Design view. The DAO FieldSize property returns the number of bytes in a Field object of type Memo or OLE Object.
You set the Microsoft Access FieldSize property in order to limit the size of a field in a table. The FieldSize property is only available in table Design view. From Visual Basic, use the Size property to set the size of a field in a table.
Example
This example uses the FieldSize property to list the number of bytes used by the Memo and Long Binary Field objects in two different tables.
Sub FieldSizeX()
Dim dbsNorthwind As Database
Dim rstCategories As Recordset
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstCategories = _
dbsNorthwind.OpenRecordset("Categories", _
dbOpenDynaset)
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
Debug.Print _
"Field sizes from records in Categories table"
With rstCategories
Debug.Print " CategoryName - " & _
"Description (bytes) - Picture (bytes)"
' Enumerate the Categories Recordset and print the size
' in bytes of the picture field for each record.
Do While Not .EOF
Debug.Print " " & !CategoryName & " - " & _
!Description.FieldSize & " - " & _
!Picture.FieldSize
.MoveNext
Loop
.Close
End With
Debug.Print "Field sizes from records in Employees table"
With rstEmployees
Debug.Print " LastName - Notes (bytes) - " & _
"Photo (bytes)"
' Enumerate the Employees Recordset and print the size
' in bytes of the picture field for each record.
Do While Not .EOF
Debug.Print " " & !LastName & " - " & _
!Notes.FieldSize & " - " & !Photo.FieldSize
.MoveNext
Loop
.Close
End With
dbsNorthwind.Close
End Sub
Example (Microsoft Access)
The following example uses the FieldSize property to return the size in bytes of two fields in an Employees table. The Notes field contains Memo data and the Photo field contains Long Binary (OLE Object) data.
Sub GetFieldSize()
Dim dbs As Database, rst As Recordset
Dim fldNotes As Field, fldPhoto As Field
Dim strSQL As String
' Return reference to current database.
Set dbs = CurrentDb
' Construct SQL statement to return Notes and Photo fields.
strSQL = "SELECT Notes, Photo FROM Employees;"
' Create dynaset-type Recordset object.
Set rst = dbs.OpenRecordset(strSQL)
Set fldNotes = rst!Notes
Set fldPhoto = rst!Photo
' Move to first record.
rst.MoveFirst
Debug.Print "Size of Notes:"; " "; "Size of Photo:"
' Print sizes of fields for each record in Recordset object.
Do Until rst.EOF
Debug.Print fldNotes.FieldSize; " "; _
fldPhoto.FieldSize
rst.MoveNext
Loop
rst.Close
Set dbs = Nothing
End Sub