2015-09-03 3 views
0

Я перехожу на вкладку «Создание» и нажимаю «Дизайн запроса», а затем «Просмотр SQL» и введите следующее. Но это не работает. Я пробовал поиск по Google, и я следую этим правилам, и у меня все еще возникают ошибки. Я меняю заявление так, как я знаю, и он все еще не работает. Что я делаю не так? Примечание: Фамилия должна быть VARCHAR, а комиссия и ставка должны быть NUMBER.Использование MS Access для создания таблиц с использованием операторов SQL?

Я переделал его с некоторыми предложениями и поменял его на это.

CREATE TABLE SALES_REP 
(REP_NUM CHAR(2) PRIMARY KEY, 
LAST_NAME VARCHAR(15), 
FIRST_NAME CHAR(15), 
STREET CHAR(15), 
CITY CHAR(15), 
STATE CHAR(2), 
POSTAL_CODE CHAR(5), 
COMMISSION NUMBER(7,2), 
RATE NUMBER(3,2)); 

Синтаксическая ошибка в CREATE ТАВЪЕ

+0

Какие ошибки вы получаете точно? Измените свой вопрос, пожалуйста. –

+1

удалите пробел в названии вашей таблицы. Измените его на Sales_Rep –

+1

POSTAL_CODE нужен тип данных. –

ответ

0

Использование двойной вместо номер:

CREATE TABLE SALES_REP 
(REP_NUM CHAR(2) PRIMARY KEY, 
LAST_NAME VARCHAR(15), 
FIRST_NAME CHAR(15), 
STREET CHAR(15), 
CITY CHAR(15), 
STATE CHAR(2), 
POSTAL_CODE VARCHAR(5), 
COMMISSION DOUBLE, 
RATE DOUBLE); 
+0

Почему номер не работает? Он работает из-за изменения DOUBLE, но книга хочет, чтобы он был указан как NUMBER? – user5274869

+0

Недействительный тип данных доступа Ms –

1

В MS Access, если вы хотите DDL, чтобы указать Scale и Precision для числового поля, используйте DECIMAL как тип поля.

CREATE TABLE SALES_REP 
(REP_NUM CHAR(2) PRIMARY KEY, 
LAST_NAME VARCHAR(15), 
FIRST_NAME CHAR(15), 
STREET CHAR(15), 
CITY CHAR(15), 
STATE CHAR(2), 
POSTAL_CODE CHAR(5), 
COMMISSION DECIMAL(7,2), 
[RATE] DECIMAL(3,2)); 

Примечание I в квадратных скобках имя поля [RATE] поэтому дб двигатель не будет путать его с помощью функции VBA Rate().

Опасайтесь для поддержки DECIMAL, вы должны выполнить инструкцию из ADO/OleDb. Я выполнил его с CurrentProject.Connection.Execute, который является метод ADO, как это ...

Dim strDdl As String 
strDdl = "CREATE TABLE SALES_REP" & vbCrLf & _ 
    "(REP_NUM CHAR(2) PRIMARY KEY," & vbCrLf & _ 
    "LAST_NAME VARCHAR(15)," & vbCrLf & _ 
    "FIRST_NAME CHAR(15)," & vbCrLf & _ 
    "STREET CHAR(15)," & vbCrLf & _ 
    "CITY CHAR(15)," & vbCrLf & _ 
    "STATE CHAR(2)," & vbCrLf & _ 
    "POSTAL_CODE CHAR(5)," & vbCrLf & _ 
    "COMMISSION DECIMAL(7,2)," & vbCrLf & _ 
    "[RATE] DECIMAL(3,2));" 
Debug.Print strDdl 
CurrentProject.Connection.Execute strDdl 

Выполнение же заявление от DAO (CurrentDb.Execute strDdl или из конструктора запросов) вызовет синтаксическую ошибку.