为什么提示说 可以参考SQL语句中FROM子句列表中的多个字段?

时间:2021-06-02 02:48:40
DoCmd.RunSQL "update [物品] set [物品].金额 = (select [13今日金额].金额 from [13今日金额] where [13今日金额].编号  = [物品].编号 )"
这个语句为什么提示说  "[物品].编号" 可以参考SQL语句中FROM子句列表中的多个字段。 这个语句,如果是MS SQL中完全是没有问题的呀,放到ACCESS怎么会有问题呢?

15 个解决方案

#1


update [物品] inner join [13今日金额] on [13今日金额].编号 = [物品].编号
 set [物品].金额=[13今日金额].金额

#2


恩。但是改了后为什么提示 “操作必须使用一个可更新的查询 ”, 如果是delete语句都没有问题的呀
引用 1 楼 wwwwa 的回复:
update [物品] inner join [13今日金额] on [13今日金额].编号 = [物品].编号
 set [物品].金额=[13今日金额].金额

#3


[物品]、[13今日金额]是表还是查询?

#4


[13今日金额]是一个查询。[物品]是表呀。
引用 3 楼 wwwwa 的回复:
[物品]、[13今日金额]是表还是查询?

#5


[13今日金额]:代码是什么 

#6


里面好复杂,不好说。这个是不是ACCESS的局限性啊。我记得ADP中应该没有问题的呀
引用 5 楼 wwwwa 的回复:
[13今日金额]:代码是什么

#7


你将[13今日金额]生成表,再替换试试

#8


这样子肯定可以吧。哎,这样子好麻烦吧。也好土呀。感觉
引用 7 楼 wwwwa 的回复:
你将[13今日金额]生成表,再替换试试

#9


没法了,这是两个不同的数据库,ACCESS与SQL SERVER有区别的

#10


DoCmd.RunSQL "update [物品] set [物品].金额 = (select  max([13今日金额].金额) from [13今日金额] where [13今日金额].编号  = [物品].编号 )"

#11


还是一样的错误提示呀。看来真的只能临近建一个表了。
引用 10 楼 acmain_chm 的回复:
DoCmd.RunSQL "update [物品] set [物品].金额 = (select max([13今日金额].金额) from [13今日金额] where [13今日金额].编号 = [物品].编号 )"

#12


上传你的MDB文件吧,把无关的窗体,表删除,仅保留  [物品] 表, [13今日金额] 表即可。

#13


狼头大哥,[13今日金额] 是一个查询,不是一个表哦。wwwa认为是因为这是查询的缘故,ACCESS不支持这样操作?
引用 12 楼 acmain_chm 的回复:
上传你的MDB文件吧,把无关的窗体,表删除,仅保留 [物品] 表, [13今日金额] 表即可。

#14


也有可能查询过于复杂

#15


那就把这个查询相关的表也同时保留,然后上传。这样别人可以直接分析。

#1


update [物品] inner join [13今日金额] on [13今日金额].编号 = [物品].编号
 set [物品].金额=[13今日金额].金额

#2


恩。但是改了后为什么提示 “操作必须使用一个可更新的查询 ”, 如果是delete语句都没有问题的呀
引用 1 楼 wwwwa 的回复:
update [物品] inner join [13今日金额] on [13今日金额].编号 = [物品].编号
 set [物品].金额=[13今日金额].金额

#3


[物品]、[13今日金额]是表还是查询?

#4


[13今日金额]是一个查询。[物品]是表呀。
引用 3 楼 wwwwa 的回复:
[物品]、[13今日金额]是表还是查询?

#5


[13今日金额]:代码是什么 

#6


里面好复杂,不好说。这个是不是ACCESS的局限性啊。我记得ADP中应该没有问题的呀
引用 5 楼 wwwwa 的回复:
[13今日金额]:代码是什么

#7


你将[13今日金额]生成表,再替换试试

#8


这样子肯定可以吧。哎,这样子好麻烦吧。也好土呀。感觉
引用 7 楼 wwwwa 的回复:
你将[13今日金额]生成表,再替换试试

#9


没法了,这是两个不同的数据库,ACCESS与SQL SERVER有区别的

#10


DoCmd.RunSQL "update [物品] set [物品].金额 = (select  max([13今日金额].金额) from [13今日金额] where [13今日金额].编号  = [物品].编号 )"

#11


还是一样的错误提示呀。看来真的只能临近建一个表了。
引用 10 楼 acmain_chm 的回复:
DoCmd.RunSQL "update [物品] set [物品].金额 = (select max([13今日金额].金额) from [13今日金额] where [13今日金额].编号 = [物品].编号 )"

#12


上传你的MDB文件吧,把无关的窗体,表删除,仅保留  [物品] 表, [13今日金额] 表即可。

#13


狼头大哥,[13今日金额] 是一个查询,不是一个表哦。wwwa认为是因为这是查询的缘故,ACCESS不支持这样操作?
引用 12 楼 acmain_chm 的回复:
上传你的MDB文件吧,把无关的窗体,表删除,仅保留 [物品] 表, [13今日金额] 表即可。

#14


也有可能查询过于复杂

#15


那就把这个查询相关的表也同时保留,然后上传。这样别人可以直接分析。