This was a known bug of visio in 2002, I do not know if it was fixed in later versions. See here for more info. A workaround seems to be on the last post of the thread:
A work around is to modify the stored procedure witht he following code after the "as":
--Visio Bug Fix db(2/25/2004)
declare @myTableOwner varchar(64)
select top 1 @myTableOwner=u.name from sysobjects s, sysusers u where
s.uid=u.uid and s.name=@tablename
set @tablename = @myTableOwner + '.' + @tablename