如何通过SQL将计算列添加到Access

Vit*_*eto 4 sql ddl ms-access access-vba

如何将计算列添加到SQL中的Access表?

我知道我可以像这样添加一个带有SQL的列:

ALTER TABLE Clients ADD COLUMN AccountDate TEXT(60)
Run Code Online (Sandbox Code Playgroud)

谢谢,Vítor

zed*_*xus 5

您无法使用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
Run Code Online (Sandbox Code Playgroud)

正如Gordon和BJones所提到的,您可以使用相关计算创建视图或保存的查询.