2013-02-19 4 views
1

계속 CREATE TABLE 구문 오류가 발생하지만 오류가 표시되지 않습니다. 오류의 원인은 무엇입니까?테이블 만들기 구문 오류 - MS 액세스, SQL보기

내 SQL : 당신의 DDL 문이 DEFAULT이 포함되어 있기 때문에

CREATE TABLE my_employee 
(
employee_id INTEGER PRIMARY KEY NOT NULL, 
first_name VARCHAR(25) NOT NULL, 
last_name VARCHAR(30) NOT NULL, 
address VARCHAR(10) NOT NULL, 
birthdate DATE, 
salary NUMERIC(8,2) DEFAULT 15000, 
marital_status CHAR(1) 
); 
+0

오류 메시지가 더 자세한 정보를 제공합니까? – criticalfix

+0

아니요, 단지 'CREATE TABLE 구문 오류' – ummlayth

답변

5

, 당신은 ADO와 함께 실행해야합니다. 나는 문자열 변수로 문을로드와 같은 액세스 2007에서 실행 :

CurrentProject.Connection.Execute strSql 

급여 필드 15000

DEFAULT 중 하나입니다 정밀도 8, 규모 2 및 기본 진수입니다 Jet 4.0에서 추가 된 Access SQL 기능 이러한 기능은 DAO에서 실행되는 명령문에서는 사용할 수 없습니다. Access의 쿼리 디자이너를 사용하여 문을 만들고 실행하면 DAO를 사용하고있는 것입니다. CurrentDb.Execute을 사용하는 경우와 동일합니다. 그러나 CurrentProject.Connection은 ADO 개체이므로 .Execute Jet 4.0 기능을 사용할 수 있습니다. PRIMARY KEYPRIMARY KEY 이후가 NOT NULL을 의미 한 후

NOT NULL 필요가 없습니다. 그러나 PRIMARY KEY NOT NULL은 오류를 트리거하지 않습니다. 이 명령문은 ADO에서 실행하는 한 원래 작성한대로 작동합니다.

+0

LOL 저는 학생이며 교사가 Access의 기본 정보를 보여 주며 DEFAULT를 사용하라고했습니다. 하지만 불행히도 프로젝트의 경계 때문에 DAO에서만 실행할 수 있습니다. 아직도, 당신은 대답을 찾았습니다 그래서 나는 upvoting입니다! 감사! – ummlayth

0

귀하의 문제는 PRIMARY KEY 선언

CREATE TABLE my_employee 
(
employee_id INTEGER NOT NULL, 
first_name VARCHAR(25) NOT NULL, 
last_name VARCHAR(30) NOT NULL, 
address VARCHAR(10) NOT NULL, 
birthdate DATE, 
salary NUMERIC(8,2) DEFAULT 15000, 
marital_status CHAR(1), 
PRIMARY KEY (employee_id) 
); 
+0

나는 그것을 일찍 시도했다 - 불행히도 나는 여전히 구문 오류를 얻는다. – ummlayth

1

그럼 난 MS 액세스 2007과 같은 문제가되었다입니다,하지만 난 나중에 그것을 해결.
보안상의 이유로 기본적으로 일부 기능이 기본적으로 사용 중지되어 있기 때문입니다.
syntax error을 표시하면 메뉴 막대 어딘가 아래쪽에 메시지가 표시됩니다 (Some Features Are Disabled For Security Reasons...).
메시지를 클릭 한 다음 계속 진행하여 추가 기능을 사용하십시오.

1

HansUp은 DDL의 "default"가 여기에서 작동하지 않는다고 말했습니다. 대안으로 먼저 기본 테이블을 만들지 않고 TableDef를 통해 기본값을 추가 할 수 있습니다.

CurrentDb().Execute "create table my_employee ..." 
CurrentDb().TableDefs("my_employee").Fields("salary").DefaultValue = 15000