Nice work Bob !
I would offer the following observations, however:- (only because I'm totally Anal)
"intWeight" is not an integer (as suggested by "int" prefix), rather a floating point decimal.
ShowLeft = IIf(IsMissing(ShowLeft), True, ShowLeft)
is redundant. IsMissing only pertains to optional parameters of type Variant. In your procedure definition, you defined it as boolean, and set it =True if not supplied.
Of course that said; looks like you've solved IanT's problem for him.