Hi SLM,
What you could do for the first problem, is to create an "IF" statement that checks the length of the variable. If it is longer than 5 characters, execute the expression, or else just show the database field.
IF(LEN([POSTALCODE])>5, "LEFT([Postalcode],5)&"-"&MID([Postalcode], 6,4)","[POSTALCODE]")
I am not sure I understand exactly your 2nd problem, but it seems that a similar "IF" statement should take care of it, but it will show nothing if condition is not met, and simply show the database field if condition is met.
IF(LEN([MyDatabaseField])>5, "[MyDatabaseField]","")
Hope this helps. Please give us more details if this was not what you meant. Thanks.
Regards,
Olivier