【发布时间】:2015-07-25 12:17:11
【问题描述】:
如何在 SQL 中将计算列添加到 Access 表中?
我知道我可以使用这样的 SQL 添加一列:
ALTER TABLE Clients ADD COLUMN AccountDate TEXT(60)
谢谢, 维托
【问题讨论】:
-
为什么这个问题被否决了?对我来说似乎是一个公平的问题。
如何在 SQL 中将计算列添加到 Access 表中?
我知道我可以使用这样的 SQL 添加一列:
ALTER TABLE Clients ADD COLUMN AccountDate TEXT(60)
谢谢, 维托
【问题讨论】:
您不能使用 SQL 添加计算列,因为计算字段需要一个表达式并且无法通过 SQL 提供。从技术上讲,计算字段是基本类型 - int、double、text 等。基本类型上方是帮助 Access 进行数学/逻辑运算的表达式。
您可以使用 VBA 创建计算列
-- create a module and let's assume that
-- your table has Field1 integer and Field2 integer
-- we will add field3
Public Sub CreateField()
Dim DB As DAO.Database
Dim TableDef As DAO.TableDef
Dim Fld As DAO.Field2
Set DB = CurrentDb()
Set TableDef = DB.TableDefs("Table1")
Set Fld = TableDef.CreateField("field3", dbDouble)
Fld.Expression = "[field1] * [field2]"
TableDef.Fields.Append Fld
MsgBox "Added"
End Sub
正如 Gordon 和 BJones 所提到的,您可以使用相关计算创建视图或保存查询。
【讨论】:
我认为 MS Access 不支持计算列。相反,您可以创建一个视图:
create view v_clients as
select c.*, (col1 + col2) as col3
from clients;
【讨论】:
您希望它计算什么?您是否尝试过类似的方法:
ALTER TABLE Clients
ADD COLUMN AccountDate AS (Column1 * Column2);
【讨论】: