Your DDL statement, with the field type substitutions @Mureinik suggested, works in Access 2010, but only if you execute it from 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
);
I loaded the statement into a string variable, strCreate, and executed it like this …
CurrentProject.Connection.Execute strCreate
CurrentProject.Connection is an ADO object.
That statement will throw a syntax error when executed via DAO …
CurrentDb.Execute strCreate ' <-- "Syntax error"
If you’re executing the statement from the Access query designer, that also uses DAO and the statement will fail.
Although the statement executed successfully from ADO, I’m unsure the resulting data types for those Numeric() fields are what you actually want. I’m not accustomed to seeing Decimal field type used for a primary key. More often, people choose AutoNumber, which is based on Long Integer. (But I’m not saying Decimal is a bad choice if that’s what you really want.)
|
|
|
0 / 0 / 0 Регистрация: 22.12.2020 Сообщений: 7 |
|
|
16.05.2021, 01:18. Показов 6115. Ответов 11 Здравствуйте! Помогите, пожалуйста. Нужна команда на SQL для создания четырех связанных таблиц в MS Access. Я пишу код, но при попытке сохранить его выскакивает сообщение «Ошибка синтаксиса в инструкции CREATE TABLE». Уже перерыла все методички, но решения проблемы так и не нашла. По методичке пишу правильно, но запрос упорно не хочет сохраняться. Должна получиться вот такая схема данных (см. вложение). Кликните здесь для просмотра всего текста
0 |
|
IT_Exp Эксперт 34794 / 4073 / 2104 Регистрация: 17.06.2006 Сообщений: 32,602 Блог |
16.05.2021, 01:18 |
|
11 |
|
17536 / 7288 / 1663 Регистрация: 21.06.2012 Сообщений: 13,957 |
|
|
16.05.2021, 01:31 |
|
|
Сообщение от marusa122 Возможно ли это реализовать? Возможно. Запросы нужно запускать по отдельности, так в Аксессе делается. А связи Вы и не создавали. Для их создания нужно делать CONSTRAINT … FOREIGN KEY.
1 |
|
0 / 0 / 0 Регистрация: 22.12.2020 Сообщений: 7 |
|
|
16.05.2021, 01:49 [ТС] |
|
|
Поняла, спасибо. Я пыталась писать запросы на создание таблиц со связями. Во вложении пример одного такого запроса. Таблица создается, а связь — нет. Что я делаю не так?.. Миниатюры
0 |
|
17536 / 7288 / 1663 Регистрация: 21.06.2012 Сообщений: 13,957 |
|
|
16.05.2021, 02:00 |
|
|
Выкладывайте SQL не картинками, а текстом, в тегах SQL. Нажали SQL (третья строка, 6 слева), появились и внутрь вставили текст. Ломать глаза, а потом стучать по клавишам нет никакого желания.
1 |
|
marusa122 0 / 0 / 0 Регистрация: 22.12.2020 Сообщений: 7 |
||||
|
16.05.2021, 02:06 [ТС] |
||||
|
Извините, я просто не знала, как это делать. Добавила.
0 |
|
ltv_1953 17536 / 7288 / 1663 Регистрация: 21.06.2012 Сообщений: 13,957 |
||||
|
16.05.2021, 02:18 |
||||
|
Сообщение было отмечено marusa122 как решение РешениеА CONSTRAINT где? И, естественно, таблицы Группы и Университеты должны быть созданы до выполнения этого запроса.
1 |
|
marusa122 0 / 0 / 0 Регистрация: 22.12.2020 Сообщений: 7 |
||||
|
16.05.2021, 02:44 [ТС] |
||||
|
Спасибо вам большое.
В режиме Конструктора (в уже созданной таблице) приходится вручную задавать маску ввода >L и правило проверки — «М» Or «Ж» . Возможно ли как-то дополнить запрос, чтобы при создании таблицы эти параметры устанавливались автоматически?
0 |
|
17536 / 7288 / 1663 Регистрация: 21.06.2012 Сообщений: 13,957 |
|
|
16.05.2021, 03:41 |
|
|
Сообщение от marusa122 маску ввода > Это не маска ввода, а ограничение. Читайте документацию CONSTRAINT
1 |
|
0 / 0 / 0 Регистрация: 22.12.2020 Сообщений: 7 |
|
|
16.05.2021, 03:51 [ТС] |
|
|
Нет-нет, там именно маска ввода (она так и называется в Конструкторе)
0 |
|
17536 / 7288 / 1663 Регистрация: 21.06.2012 Сообщений: 13,957 |
|
|
16.05.2021, 04:09 |
|
|
Сообщение от marusa122 Но куда вставлять и как оформлять в запросе маску ввода? Никуда. Нет такой возможности, если не конструкторе вручную, то только в VB, в DAO есть свойства полей таблицы. И все маски и т.п. (прочитал Вашу, как ограничение >1) лучше не делайте в таблицах, а только в формах. Вручную в таблицы вводить — дурной тон.
1 |
|
0 / 0 / 0 Регистрация: 22.12.2020 Сообщений: 7 |
|
|
16.05.2021, 04:18 [ТС] |
|
|
Большое вам спасибо))
0 |
|
17536 / 7288 / 1663 Регистрация: 21.06.2012 Сообщений: 13,957 |
|
|
16.05.2021, 04:42 |
|
|
Сообщение от marusa122 Большое вам спасибо Да не за что. Все бы ТС так точно формулировали вопросы, воспринимали ответы, … .
1 |
|
BasicMan Эксперт 29316 / 5623 / 2384 Регистрация: 17.02.2009 Сообщений: 30,364 Блог |
16.05.2021, 04:42 |
|
Помогаю со студенческими работами здесь access SQL, инструкция Create Table, ограничение на вводимые значения create table таблица как на поле оценка наложить логическое ограничение,… MS Access — как же изничтожить в запросах ошибку синтаксиса CONSTRAINT и ошибку инструкции CREATE TABLE? CREATE ANY TABLE Ошибка CREATE TABLE SHOW CREATE TABLE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 12 |
|
Новые блоги и статьи
Все статьи Все блоги / |
||||
|
JWT аутентификация в Java
Javaican 21.04.2025 JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . . |
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025 Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . . |
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025 Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . . |
Система статов в Unity
GameUnited 20.04.2025 Статы — фундаментальный элемент игрового дизайна, который определяет характеристики персонажей, предметов и других объектов в игровом мире. Будь то показатель силы в RPG, скорость передвижения в. . . |
Статические свойства и методы в TypeScript
run.dev 20.04.2025 TypeScript прочно занял своё место в системе современной веб-разработки. Этот строго типизированный язык программирования не просто расширяет возможности JavaScript — он делает разработку более. . . |
|
Batch Transform и Batch Gizmo Drawing API в Unity
GameUnited 20.04.2025 В мире разработки игр и приложений на Unity производительность всегда была критическим фактором успеха. Создатели игр постоянно балансируют между визуальной привлекательностью и плавностью работы. . . |
Звук в Unity: Рандомизация с Audio Random Container
GameUnited 20.04.2025 В современных играх звуковое оформление часто становится элементом, который либо полностью погружает игрока в виртуальный мир, либо разрушает атмосферу за считанные минуты. Представьте: вы исследуете. . . |
Максимальная производительность C#: Советы, тестирование и заключение
stackOverflow 20.04.2025 Погружение в мир микрооптимизаций C# открывает перед разработчиком целый арсенал мощных техник. Но как определить, где и когда их применять? Ответ начинается с точных измерений и профилирования. . . . |
Максимальная производительность C#: Предсказание ветвлений
stackOverflow 20.04.2025 Третий ключевой аспект низкоуровневой оптимизации — предсказание ветвлений. Эта тема менее известна среди разработчиков, но её влияние на производительность может быть колоссальным. Чтобы понять. . . |
Максимальная производительность C#: Векторизация (SIMD)
stackOverflow 20.04.2025 Помимо работы с кэшем, другим ключевым аспектом низкоуровневой оптимизации является векторизация вычислений. SIMD (Single Instruction, Multiple Data) позволяет обрабатывать несколько элементов данных. . . |
Наверх
Проблема с типами данных в Access
| От: |
Garbager |
||
| Дата: | 07.09.06 10:11 | ||
| Оценка: |
У меня следующая проблема. Подключаюсь к базе данных Acces через ODBC. Средствами ODBC пытаюсь в БД через запрос создать таблицу. Почему-то возникает ошибка при создании таблицы, содержащей поле типа TINYINT. Например:
CREATE TABLE A (ID INTEGER PRIMARY KEY, N TINYINT)
С целыми типами SMALLINT и INTEGER прокатывает, а с TINYINT — нет. Почему?
Re: Проблема с типами данных в Access
| От: |
Garbager |
||
| Дата: | 07.09.06 12:00 | ||
| Оценка: |
Еще вопрос: где можно скачать описание стандартов SQL92 и SQL99. Нигде не могу найти…
Re: Проблема с типами данных в Access
| От: |
wildwind |
||
| Дата: | 07.09.06 12:31 | ||
| Оценка: |
Здравствуйте, Garbager, Вы писали:
G>CREATE TABLE A (ID INTEGER PRIMARY KEY, N TINYINT)
G> С целыми типами SMALLINT и INTEGER прокатывает, а с TINYINT — нет. Почему?
Попробуй синонимы — INTEGER1, BYTE. Попробуй также через ADO — может быть драйвер не пропускает неизвестный ему тип.
Re[2]: Проблема с типами данных в Access
| От: | Аноним | ||
| Дата: | 11.09.06 06:09 | ||
| Оценка: |
Здравствуйте, wildwind, Вы писали:
W>Попробуй синонимы — INTEGER1, BYTE. Попробуй также через ADO — может быть драйвер не пропускает неизвестный ему тип.
Синонимы мне использовать нельзя, необходимо придерживаться SQL92.
Re: Проблема с типами данных в Access
| От: |
Garbager |
||
| Дата: | 11.09.06 06:24 | ||
| Оценка: |
Еще один косяк: не прокатывают запросы на создание таблиц с определением полей типа DECIMAL и NUMERIC, например:
CREATE TABLE A (
ID INTEGER NOT NULL,
N1 NUMERIC(5,1) NOT NULL,
PRIMARY KEY (ID)
)
или
CREATE TABLE A (
ID INTEGER NOT NULL,
N1 DECIMAL(5,1) NOT NULL,
PRIMARY KEY (ID)
)
В первом случае сообщение драйвера: «Ошибка синтаксиса в инструкции CREATE TABLE».
Во втором случае сообщение драйвера: «Ошибка синтаксиса при определении поля».
Re[2]: Проблема с типами данных в Access
| От: |
Бенедикт |
||
| Дата: | 11.09.06 07:30 | ||
| Оценка: |
Здравствуйте, Garbager, Вы писали:
G>Еще один косяк: не прокатывают запросы на создание таблиц с определением полей типа DECIMAL и NUMERIC, например:
G>CREATE TABLE A (
G> ID INTEGER NOT NULL,
G> N1 NUMERIC(5,1) NOT NULL,
G> PRIMARY KEY (ID)
G>)
G>или
G>CREATE TABLE A (
G> ID INTEGER NOT NULL,
G> N1 DECIMAL(5,1) NOT NULL,
G> PRIMARY KEY (ID)
G>)
G>В первом случае сообщение драйвера: «Ошибка синтаксиса в инструкции CREATE TABLE».
G>Во втором случае сообщение драйвера: «Ошибка синтаксиса при определении поля».
Это не косяк. Вот
обсуждение
Автор: Callisto
Дата: 01.06.06
.
Re: Проблема с типами данных в Access
| От: |
ZAMUNDA |
для жалоб и предложений | |
| Дата: | 11.09.06 08:29 | ||
| Оценка: |
Здравствуйте, Garbager, Вы писали:
G> С целыми типами SMALLINT и INTEGER прокатывает, а с TINYINT — нет. Почему?
Посмотри Microsoft Access Data Types и там Limitations ещё есть.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re[3]: Проблема с типами данных в Access
| От: | Аноним | ||
| Дата: | 12.09.06 08:16 | ||
| Оценка: |
Re[2]: Проблема с типами данных в Access
| От: |
Garbager |
||
| Дата: | 12.09.06 08:24 | ||
| Оценка: |
ZAM>Посмотри Microsoft Access Data Types и там Limitations ещё есть.
Спасибо!
- Переместить
- Удалить
- Выделить ветку
Пока на собственное сообщение не было ответов, его можно удалить.
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
Форум программистов Vingrad
| Модераторы: Akina |
Поиск: |
| ошибка синтаксиса CREATE TABLE |
Опции темы |
| CLIPSA |
|
||
|
Шустрый Профиль Репутация: нет
|
Использую Access + ADO.
Пишит ошибка синтаксиса CREATE TABLE. Немогу понять где эта ошибка? |
||
|
|
|||
| sergejzr |
|
||
|
Un salsero Профиль
Репутация: нет
|
Наверное здесь
А вообще, конечно интересно, что за база данных, к которй обращаешься. ——————— Me. |
||
|
|
|||
| CLIPSA |
|
||
|
Шустрый Профиль Репутация: нет
|
Access |
||
|
|
|||
| sergejzr |
|
||
|
Un salsero Профиль
Репутация: нет
|
Тогда туда и надо!
переношу. ——————— Me. |
||
|
|
|||
| Akina |
|
||
|
Советчик Профиль
Репутация: 30
|
В MS Access вызовите справку, ее оглавление, раскройте справочник по MS Jet SQL и посмотрите синтаксис оператора CREATE TABLE. Кроме того, как указано выше, все имена таблиц и полей в кириллице обрамляйте квадратными скобками. Для проверки правильности построенного запроса попробуйте его занести в построитель запросов MS Access (вид — режим SQL) и выполнить — это даст возможность его отладить. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
|
|
|||
| CLIPSA |
|
||
|
Шустрый Профиль Репутация: нет
|
Ничего не получается |
||
|
|
|||
| Golden Hands |
|
||
|
Золотой Профиль
Репутация: нет
|
Проверил в Delphi — запрос выполняется, таблица создается. ——————— Мы обречены… но только на победу! |
||
|
|
|||
| Akina |
|
||
|
Советчик Профиль
Репутация: 30
|
Еще бы… а ведь уже один раз предлагал я почитать таки справку… Не знает MS Jet SQL про какой-то там DEFAULT. Ну вот не знает, и все тут! а ты его, беднягу… и CONSTRAINT он бы хотел видеть написанным совсем по-другому… и еще пара ляпчиков (кажется — я-то за тебя справку читать не буду, а точно не помню)… Добавлено @ 00:40 ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
|
|
|||
| Golden Hands |
|
||
|
Золотой Профиль
Репутация: нет
|
В самом Access этот запрос не прошел, пока не убрал DEFAULT и WITH COMP. ——————— Мы обречены… но только на победу! |
||
|
|
|||
| CLIPSA |
|
||
|
Шустрый Профиль Репутация: нет
|
Гадость какая этот MS Jet SQL. Это сообщение отредактировал(а) CLIPSA — 8.11.2006, 17:35 |
||
|
|
|||
| Akina |
|
||
|
Советчик Профиль
Репутация: 30
|
Сам Аксесс работает через коллекцию TableDefs. Вот уж где раздолье для творчества. ——————— О(б)суждение моих действий — в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция — Администрация форума. |
||
|
|
|||
| bopoha |
|
||
|
Эксперт Профиль
Репутация: 21
|
На самом деле в Access 2003, если записать так DEFAULT «0», то работает. Именно как строковый тип. ——————— Как создавать приложения на MS Access |
||
|
|
|||
| Правила форума «MS Access» | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
| 0 Пользователей: |
| « Предыдущая тема | MS Access | Следующая тема » |
