4

Я знаю, что вы можете открыть консоль SQL в Access при создании запроса или представления, но есть ли универсальная консоль, которая позволила бы мне выполнять такие выражения, как:

CREATE TABLE Foo
(
Foo_Id int NOT NULL,
Name varchar(255) NOT NULL,
CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name)
)

4 ответа4

7

Я не знаю, что вы подразумеваете под «универсальной консолью», но, возможно, в Access это - «Немедленное окно», которое будет отвечать вашим потребностям. Если вы нажмете Ctrl-G на клавиатуре в главном окне доступа, вы попадете в окно немедленного доступа в VBE и там вы можете набрать:

  CurrentDB.Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

Это однострочный интерфейс, поэтому нет форматирования SQL, но он будет выполнять SQL.

Проблема с использованием CurrentDB в качестве объекта выполнения заключается в том, что он возвращает новый объект базы данных каждый раз, когда вы вызываете его (чтобы обеспечить актуальность всех его коллекций). Альтернативой будет:

  DBEngine(0)(0).Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

Поскольку DBEngine(0)(0) всегда возвращает один и тот же объект, вы можете проверить такие вещи, как:

  DBEngine(0)(0).RecordsAffected

Проблема в том, что если вы изменяете коллекции базы данных, вы должны не забыть обновить их, прежде чем использовать их. Например, если вы добавляете или удаляете таблицу, вам нужно обновить коллекцию TableDefs, чтобы она была актуальной:

  DBEngine(0)(0).TableDefs.Refresh

Другой альтернативой может быть использование объекта кэшированной базы данных, как я это делаю во всех своих приложениях, но это не устраняет проблему обновления коллекций, а просто упрощает ввод (я считаю, что ввод DBEngine (0) (0) довольно подвержен ошибкам, и найти мою функцию dbLocal гораздо проще в использовании).

3

Откройте представление конструктора в объекте базы данных запросов. Закройте форум «Показать таблицу», затем щелкните правой кнопкой мыши пустую область в верхней части окна под панелями инструментов. Выберите SQL View. Это даст вам место, где вы можете выполнять SQL-запросы. Используйте «Беги!"из панели инструментов.

Это представление предназначено для вас, чтобы создавать и сохранять запросы, но вам это не нужно.

1

Я не верю, что Access когда-либо действительно рассматривался как используемый для общего использования SQL, например, для создания таблиц, а что нет. Вы даже не можете использовать «хранимые процедуры», как на обычном сервере SQL. Я думаю, вы будете разочарованы, если начнете использовать Access без использования Visual Designer.

Удачи!

0

Использование ADP для подключения к SQL Server может дать вам то, что вы хотите. Однако я не знаю, в какой степени Access 2003 позволяет создавать представления и хранимые процедуры в SQL Server 2005 или 2008, как они были выпущены после A2003.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .