MS Access 2003 是否包含通用 SQL 控制台

MS Access 2003 是否包含通用 SQL 控制台

我知道您可以在创建查询或视图时在 Access 中打开 SQL 控制台,但是否有一个“通用”控制台可以让我执行如下语句:

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

答案1

我不知道您说的“万能控制台”是什么意思,但也许 Access 中的“立即窗口”可以满足您的需求。如果您在 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 函数更容易使用)。

答案2

打开查询数据库对象中的设计视图。关闭显示表论坛,然后右键单击窗口顶部工具栏下方的空白区域。选择 SQL 视图。这将为您提供一个可以执行 SQL 查询的位置。使用工具栏上的“运行!”。

该视图旨在帮助您创建和保存查询,但您不必这样做。

答案3

我认为 Access 从未真正被考虑用于一般目的的 SQL 用途,例如创建表等。您甚至不能像在常规 SQL 服务器上那样使用“存储过程”。我认为,如果您开始使用 Access 而不使用可视化设计器,您会发现自己很沮丧。

祝你好运!

答案4

使用 ADP 连接到 SQL Server 可能会满足您的要求。但是我不知道 Access 2003 在多大程度上允许您在 SQL Server 2005 或 2008 中创建视图和存储过程,因为它们是在 A2003 之后发布的。

相关内容