2

我需要创建一个本地临时表#tblTmpYaks,然后选择此临时表中的记录以显示在 PassThrough Query 中。

临时表是这样创建的:

CREATE TABLE #tblTmpYaks (ID INT NOT NULL IDENTITY,
   YakName CHAR(30),
   PRIMARY KEY (ID));
INSERT INTO #tblTmpYaks (YakName) VALUES('My Yak');
INSERT INTO #tblTmpYaks (YakName) VALUES('My Female Yak');

然后使用 SQL 字符串创建一个 passthru 查询:

SELECT * FROM #tblTmpYaks;

但这不起作用,当我打开它时显示 MsgBox:

在此处输入图像描述

这意味着 SQL Server 中不再存在 #tblTmpYaks。

如何使这项工作?

结论增加了一个后验

正如Gord Thompson下面所述,我放弃使用仅在本地 SQL Server 会话期间存在的本地临时表 #tblTmpYaks。取而代之的是这里使用了一个全局临时表,记为##tblTmpYaks,它可以通过直通查询隐含在Access报表的RecordSource中,更多的在退出Access Interface时会被自动删除。

4

1 回答 1

3

与此处的问题类似,如果您使用 SQL Server全局临时表(##tblTmpYaks而不是) ,您可能会有更好的运气#tblTmpYaks。如果您通过 Access 中的 CREATE TABLE Pass-Through 查询创建表,则该表应该一直存在,直到您关闭 Access(除非您首先明确地 DROP TABLE)。

于 2013-10-09T15:30:30.580 回答