Your query just uses the literal strings CSVRoom, CSVLocation, etc. rather than their values. The $CSVSerial won't work in VB - that's a PHP thing (plus some other languages). In addition, if these are string values they need to be surrounded by single quotes. Try something like this instead:
commandText = "Update Inventory Set Room = '" & CSVRoom & "', " & _
"Location = '" & CSVLocation & "', " & _
"AssetTag = '" & CSVAssetTag & "', " & _
"CheckedOutTo = '" & CSVCheckedOutTo & "' where SerialNumber = '" & CSVSerial & "'"
I've assumed all the columns are strings. If any are numbers you don't need the single quotes around them but then again they shouldn't hurt either.
Addendum: Followup question is how to update the columns only if they're not blank or null.
To test for blank or null, you can use a condition like this:
Room IS NULL OR Room = ''
... or like this:
COALESCE(Room, '') = ''
The second one is shorter so I'll go with that because the command lines are getting pretty long. The basic MySQL command goes like this:
UPDATE Inventory SET
Room = CASE WHEN COALESCE(Room, '') = '' THEN Room ELSE 'new value' END,
...
So if Room is '' or NULL it's set to its existing '' or NULL value. If not, it's set to the new value.
Here's how it looks in VBScript. This is untested because I don't have VBScript available.
commandText = "UPDATE Inventory SET " & _
"Room = CASE WHEN COALESCE(Room, '') = '' THEN Room ELSE '" & CSVRoom & "' END, " & _
"Location = CASE WHEN COALESCE(Location, '') = '' THEN Location ELSE '" & CSVLocation & "' END, " & _
"AssetTag = CASE WHEN COALESCE(AssetTag, '') = '' THEN AssetTag ELSE '" & CSVAssetTag & "' END, " & _
"CheckedOutTo = CASE WHEN COALESCE(CheckedOutTo, '') = '' THEN CheckedOutTo ELSE '" & CSVCheckedOutTo & "' END " & _
"WHERE SerialNumber = '" & CSVSerial & "'"