Sorry for a late reply. See if this helps. It's some code I wrote to format dates if FORMAT$ doesn't work. I used it in QB 4.5 and it works fine.
FUNCTION FORMAT$ (d$, f$)
out$ = ""
' Search for 'm', 'd', and 'y'
yc% = 0
mc% = 0
dc% = 0
f$ = f$ + "@" ' this is my way of cutting corners...
' Instead of writing a helper function called in CASE ELSE and at the end,
' I'll invoke it again in CASE ELSE by appending a random char, then removing it.
FOR i% = 1 TO LEN(f$)
SELECT CASE MID$(f$, i%, 1)
CASE "d"
dc% = dc% + 1
CASE "m"
mc% = mc% + 1
CASE "y"
yc% = yc% + 1
CASE ELSE
IF (yc% = 2) OR (yc% = 4) THEN
out$ = out$ + RIGHT$(d$, yc%)
ELSEIF mc% = 1 THEN
out$ = out$ + LTRIM$(STR$(VAL(LEFT$(d$, 2))))
ELSEIF mc% = 2 THEN
out$ = out$ + LEFT$(d$, 2)
ELSEIF dc% = 1 THEN
out$ = out$ + LTRIM$(STR$(VAL(MID$(d$, 4, 2))))
ELSEIF dc% = 2 THEN
out$ = out$ + MID$(d$, 4, 2)
END IF
yc% = 0
mc% = 0
dc% = 0
out$ = out$ + MID$(f$, i%, 1)
END SELECT
NEXT
FORMAT$ = LEFT$(out$, LEN(out$) - 1)
END FUNCTION