首先我要说的是,我没有使用正确的工具来完成工作,但它们是我可以访问的唯一工具。
我使用Excel作为包含多个具有关联数据的表的数据库。通常在数据库中,此数据可能与外键相关联,但我认为这与Excel不同。
我有两张桌子:
TABLE items
batch_id customer_id
1 1
2 1
3 2
和
TABLE customers
id customer
1 cust1
2 cust2
我有一个userform,只允许用户按名称选择客户。 我希望能够做的是根据特定的batch_id和客户名称更新items表中的customer_id。
这是我到目前为止所做的工作。
UPDATE [items$]
SET [items$].customer_id=[customers$].id
INNER JOIN [customers$]
ON [items$].customer_id=[customers$].id
WHERE [items$].batch_id='value1'
AND [customers$].customer='value2'
[UPDATE]
以下似乎更接近答案,但是给我一个'操作必须使用可更新的查询。'错误。
UPDATE items
SET items.customer_id=(
SELECT FIRST(customers.id)
FROM customers
WHERE customers.customer=value2)
WHERE items.batch_id=value1;
我一直在进行操作必须使用可更新的查询错误'有了这个,但我认为没有理由为什么它不应该
答案 0 :(得分:0)
我不确定如何加入excel VBA。但是update
语法应该是(如果你想更新所有行)
Update items
set items.customer_id = (select customers.id
from customers inner join items
on customers.id = items.customer_id
where customers.id='Value2'
and items.batch_id='Value1');
希望这可能有助于你
答案 1 :(得分:0)
尝试使用以下一次可能会得到预期的结果。
但这是SQL的情况。
UPDATE items i
JOIN customers c ON i.customer_id = c.id
SET i.customer_id = c.customer