Sizes:
--------
YesNo 1 byte (-1 for True, 0 for False, Null not permitted).
Byte 1 byte, unsigned (0 to 255).
Integer 2 byte, signed (-32768 to 32767)
Long 4 byte, signed
Single 4 byte, signed
Double 8 byte, signed
Currency 8 byte (fixed point number, 4 places)
Date/Time 8 byte
ReplicationID 16 byte
Decimal user-configurable
Then there's the overhead for managing the column: 1 extra byte for each
Number field, as well as other overhead per record.
To verify the field size, use:
? CurrentDb().TableDefs("MyTable").Fields("MyField").Size
Changing longs to integer will not improve performance, unless you are still
on a 16-bit o/s (Windows 3.x), and working with the Byte type will be even
slower.
For a summary of names and constants used in the interface, DDL, DAO and
ADOX, see:
http://members.iinet.net.au/~allenbrowne/ser-49.html