How to add a calculated column to Access via SQL

前端 未结 3 1107
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-19 21:43

How do i add a calculated column to an Access table in SQL?

I know i can add a column with SQL like this:

ALTER TABLE Clients ADD COLUMN AccountDate          


        
相关标签:
3条回答
  • 2021-01-19 21:45

    I don't think MS Access supports computed columns. Instead, you can create a view:

    create view v_clients as
        select c.*, (col1 + col2) as col3
        from clients;
    
    0 讨论(0)
  • 2021-01-19 21:47

    You cannot add a calculated column with SQL because calculated field requires an expression and that cannot be supplied through SQL. Technically, a calculated field is a base type - int, double, text etc. Above the base type is an expression that helps Access do the math/logic.

    You could use VBA to create a calculated column

    -- 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
    

    As Gordon and BJones mentioned, you could create a view or saved query with relevant calculation.

    0 讨论(0)
  • 2021-01-19 21:54

    What do you want it to calculate? Have you tried something like:

    ALTER TABLE Clients 
    ADD COLUMN AccountDate AS (Column1 * Column2);
    
    0 讨论(0)
提交回复
热议问题