Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MS Access Create Table with Autoincrement and default date

Tags:

sql

ms-access

I try to create MS Access Table with autoincrement ID and Default Date field, but next query always says "Syntax error in CREATE TABLE statement.":

CREATE TABLE Table1
(
    [ID] AUTOINCREMENT,
    [Email] TEXT(255),
    [ProductID] NUMBER,
    [DateCreate] DATETIME,
    [DateSend] DATETIME
);


ALTER TABLE Table1
ALTER [DateSend] DATETIME DEFAULT NOW() NOT NULL;

Who can help me to fix that query. Thanks!

like image 643
ihorko Avatar asked May 14 '11 06:05

ihorko


2 Answers

There are many NUMBER types in Ms-Access, so you have to be specific. I guess you want Integer.

CREATE TABLE Table1
(
    [ID] AUTOINCREMENT,
    [Email] TEXT(255),
    [ProductID] INTEGER,
    [DateCreate] DATETIME,
    [DateSend] DATETIME
);

The ALTER TABLE syntax requires ALTER COLUMN :

ALTER TABLE Table1
ALTER COLUMN
    [DateSend] DATETIME DEFAULT NOW() NOT NULL;

You could also have those two in one statement:

CREATE TABLE Table1
(
    [ID] AUTOINCREMENT,
    [Email] TEXT(255),
    [ProductID] INTEGER,
    [DateCreate] DATETIME,
    [DateSend] DATETIME DEFAULT NOW() NOT NULL
);

It's best practise to have a PRIMARY KEY on every table, and you probably intended that for the ID:

    [ID] AUTOINCREMENT PRIMARY KEY,

A page with a lot of useful information about how to handle Access with SQL:

Intermediate Microsoft Jet SQL for Access 2000

like image 182
ypercubeᵀᴹ Avatar answered Oct 19 '22 05:10

ypercubeᵀᴹ


CREATE TABLE Tblcontact
(
contactid AUTOINCREMENT PRIMARY KEY ,
firstname CHAR (60),
lastname CHAR (60),
email VARCHAR (75)
);
like image 44
ginahlobetania Avatar answered Oct 19 '22 06:10

ginahlobetania