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 TEXT(60)
Thanks, Vítor
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.
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With