I have two tables, a local table in MS Access and a remote MySQL table linked via ODBC. They have identical order numbers except they are stored as a string in the remote table and a number in the local table. I can't seem to find how to update the local table. This was my initial code which gave me a 'Type Mismatch' error.
UPDATE
localTable LT, remoteTable RT
SET
LT.user = RT.user
WHERE
LT.orderID = RT.orderID
I've tried using CAST but that doesn't seem to work either...
UPDATE
localTable LT, remoteTable RT
SET
LT.user = RT.user
WHERE
LT.orderID = CAST(RT.orderID AS INTEGER)
I can't change the tables themselves to make them both string/number. Probably really simple but I can't seem to find the answer when using WHERE in an UPDATE query. Any help would be greatly received - thanks!
CodePudding user response:
In Access SQL, use Val:
UPDATE
localTable LT, remoteTable RT
SET
LT.user = RT.user
WHERE
LT.orderID = Val(RT.orderID)
CodePudding user response:
I would use a JOIN instead of a where clause. Access allows joins in the UPDATE command. The string can be converted by using an Access conversion function like CLng, CDbl etc.
UPDATE
localTable LT
INNER JOIN remoteTable RT
ON LT.orderID = CLng(RT.orderID)
SET
LT.user = RT.user
