Board index » delphi » Creating a new field in MS Access

Creating a new field in MS Access

I am using a database created in MS Access that has a certain number of
defined fields. My problem is that I need to add more fields from within a
Delphi application. I have a TTable component and using the line:


I am able to add the new field,m which exists while the program is running.
The problem is this field is not actually created in the Access Database,
and I do not seem to be able to find a method to do this.

Can anyone please suggest a way to do it, perhaps with some sample code.

Thank you,


Re:Creating a new field in MS Access

Taken from Access help. Specify the alter table statement in a ADOQuery



Modifies the design of a table after it has been created with the CREATE
TABLE statement.

Note   The Microsoft Jet database engine doesn't support the use of ALTER
TABLE, or any of the data definition language (DDL) statements, with
non-Microsoft Jet databases. Use the DAO Create methods instead.


ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT
] |
CONSTRAINT multifieldindex} |
DROP {COLUMN field I CONSTRAINT indexname} }

The ALTER TABLE statement has these parts:

Part Description
table The name of the table to be altered.
field The name of the field to be added to or deleted from table.
type The data type of field.
size The field size in characters (Text and Binary fields only).
index The index for field. See the CONSTRAINT clause topic for more
information on how to construct this index.
multifieldindex The definition of a multiple-field index to be added to
table. See the CONSTRAINT clause topic for more information on how to
construct this clause.
indexname The name of the multiple-field index to be removed.

Using the ALTER TABLE statement, you can alter an existing table in several
ways. You can:

Use ADD COLUMN to add a new field to the table. You specify the field
name, data type, and (for Text and Binary fields) an optional size. For
example, the following statement adds a 25-character Text field called Notes
to the Employees table:


You can also define an index on that field. For more information on
single-field indexes, see the CONSTRAINT clause topic.

If you specify NOT NULL for a field, then new records are required to have
valid data in that field.

Use ADD CONSTRAINT to add a multiple-field index. For more information on
multiple-field indexes, see the CONSTRAINT clause topic.
Use DROP COLUMN to delete a field. You specify only the name of the field.
Use DROP CONSTRAINT to delete a multiple-field index. You specify only the
index name following the CONSTRAINT reserved word.


You can't add or delete more than one field or index at a time.
You can use the CREATE INDEX statement to add a single- or multiple-field
index to a table, and you can use ALTER TABLE or the DROP statement to
delete an index created with ALTER TABLE or CREATE INDEX.
You can use NOT NULL on a single field, or within a named CONSTRAINT
clause that applies to either a single field or to a multiple-field named
CONSTRAINT. However, you can apply the NOT NULL restriction only once to a
field, or a run-time error occurs.

Other Threads