I have heard that using the smallest datatype in a program does not necessarily save space in memory, as memory is optimised to work in blocks of a certain size, possibly VB Long.
Is this correct, or is it best to use the smallest datatype that will safely hold the data required.
One important piece of advice, which I can confirm from experience, is:
Always use a large enough data type to allow for future growth.
You might expect that a variable to hold sales figures would never need to contain more than 99 million, but allow for even more, as it may need to hold, for example, a company-wide summary of sales for the past twenty years, and suddenly the program will crash if the data type is too small.