Я не знаю, что вы подразумеваете под «универсальной консолью», но, возможно, в 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 гораздо проще в использовании).