当我尝试使用减法或同一张表中的其他任何内容创建简单的更新查询时,它没有返回任何值,这与格式化有关吗?
这是SQL代码:UPDATE Sales SET Sales.GrossProfit = [SubTot]-[Cost];
它不返回任何值。
我已经从使用相同类型查询的不同数据库(来自同事)复制了语法。可能与我的常规访问设置有关吗?
UPDATE Sales SET Sales.GrossProfit = [SubTot]-[Cost];
我希望查询使用计算"SubTot - Cost"
来更新GrossProfit列
答案 0 :(得分:1)
严格来说,UPDATE查询不会“返回”任何列。它仅更改现有行中的数据,而本身不会将这些更改返回给您。 (由于它不返回数据,因此更准确地称为更新声明。)
例如,如果要在VBA代码中执行UPDATE语句,则不会像SELECT查询一样获得列的RecordSet。要在执行UPDATE语句后 后获得结果,将需要您执行单独的SELECT查询。
但是,我假设您正在在Access查询设计器中查看Update查询。 正确吗?
在这种情况下,当您单击“查看”按钮(“数据表”视图)时,Access会尝试对UPDATE变得聪明而有用,并将其临时转换为SELECT查询,以便您可以直观地看到列中的现有数据。 数据表视图实际上并没有运行UPDATE语句,也没有显示运行该语句时的预览。
在 Design视图或 SQL视图中,对于Update查询(或对于Delete,Make Table和Append查询),有一个 Run按钮< / strong>,带有红色的感叹号(在“设计”功能区/工具栏上)。单击该按钮实际上将执行更改表值的查询。尽管它不会逐行显示结果,但是您应该弹出一个窗口,告诉您由于该语句而更改了多少行。 (您可能还会收到确认提示,表明该语句即将更改表中的数据。)