Create table Customers
(
customerid number(10) PRIMARY KEY;
First_name varchar2(100);
last_name varchar2(100);
house_number number(10);
street number(10);
postcode number(5);
home_phone_number number(10);
mobile_phone_number number(10);
email_address varchar2(100);
DOB date
);
答案 0 :(得分:2)
您的DDL语句(带有@Mureinik建议的字段类型替换)在Access 2010中有效,但仅当您从ADO执行时:
Create table Customers (
customerid numeric(10) PRIMARY KEY,
First_name varchar(100),
last_name varchar(100),
house_number numeric(10),
street numeric(10),
postcode numeric(5),
home_phone_number numeric(10),
mobile_phone_number numeric(10),
email_address varchar(100),
DOB datetime
);
我将语句加载到字符串变量 strCreate 中,并像这样执行...
CurrentProject.Connection.Execute strCreate
CurrentProject.Connection
是一个ADO对象。
该语句在通过DAO执行时会抛出语法错误...
CurrentDb.Execute strCreate ' <-- "Syntax error"
如果您正在从Access查询设计器执行该语句,那么它也会使用DAO并且该语句将失败。
尽管语句是从ADO成功执行的,但我不确定那些Numeric()
字段的结果数据类型是您真正想要的。我不习惯看到用于主键的Decimal
字段类型。更常见的是,人们选择基于AutoNumber
的{{1}}。 (但我并不是说Long Integer
如果那是你真正想要的,那就不错了。)
答案 1 :(得分:1)
在每个列定义之后,您应该使用逗号(,
),而不是分号(;
)。
此外,这个脚本看起来好像是从Oracle借来的。在访问权限中,varchar2
,number
和date
的相应类型分别为varchar
,numeric
和datetime
:
Create table Customers
(
customerid numeric(10) PRIMARY KEY,
First_name varchar(100),
last_name varchar(100),
house_number numeric(10),
street numeric(10),
postcode numeric(5),
home_phone_number numeric(10),
mobile_phone_number numeric(10),
email_address varchar(100),
DOB datetime
);