I have A solution, although it's not THE solution, since it requires starting from the product key and working backwards; use known product keys to get the the ProductIDs of the software you want to track and then use the ProductIDs in conjunction with the software name to find the rest of them.
This is only neccessary with the 2010 products, since 2007 and earlier are recognised correctly.
Step 1: Match ProductID to ProductKey;
Select tblComputers.ComputerUnique, tblSerialnumber.Product,
tblSerialnumber.ProductID, tblSerialnumber.ProductKey
From tblComputers Inner Join
tblSerialnumber On tblComputers.Computername = tblSerialnumber.Computername
Where tblSerialnumber.ProductKey Like 'D9DWC-HPYVV-JGF4P-BTWQB-WX8BJ'
If you have volume licences, this page: http://technet.microsoft.com/en-us/library/ee624355.aspx has the keys, which will make life easier.
So Visio 2010 has these two that I've seen, although there may be others; 82503-001-0000502-xxxxx and 82503-575-0209055-xxxxx.
I also added a query to filter out the viewer and SDK entries.
Select Top 1000000 tblComputers.Computername, tblComputers.ComputerUnique,
tblComputers.Username, tblSoftware.softwareName, tblSerialnumber.ProductID,
tblSerialnumber.ProductKey, tblSerialnumber.Product
From tblComputers
Inner Join tblSerialnumber On tblComputers.Computername = tblSerialnumber.Computername
Inner Join tblSoftware On tblComputers.Computername = tblSoftware.ComputerName
Where tblSoftware.softwareName Like '% Visio %' And
(tblSerialnumber.ProductID Like '82503-001-0000502%' Or
tblSerialnumber.ProductID Like '82503-575-0209055%') And
(tblSoftware.softwareName Not Like '% Viewer%' And
tblSoftware.softwareName Not Like '% SDK')