在 MS Access DB 中创建临时表

Posted

技术标签:

【中文标题】在 MS Access DB 中创建临时表【英文标题】:Creating temporary tables in MSAccess DB 【发布时间】:2012-02-25 04:26:00 【问题描述】:

我几乎确定有更好的方法来做到这一点,但现在我会继续这样做。这是使用 WinForms,而不是在网页上。

在 Visual Basic 2010 中,我想创建一个表单,该表单使用数据网格视图从运行时创建的临时表中提取行。单击该表单的“提交”按钮时,临时表中的行将被复制到常规表中。 (这样做是因为在提交表单之前没有可用的 ID#。需要 ID#,因为临时生成的行以及整个表单将与该编号相关联。)

所以我的问题是,如何在 MSAccess 中动态创建临时表,或者如何使用数据网格而不将其与表关联?

【问题讨论】:

【参考方案1】:

如果你的想法是:

    创建一个空表,从另一个表继承其结构,然后 将记录添加到这个新表中,然后 最后将这些记录插入到原表中,

你可以这样做:

SELECT * INTO tempTable FROM myTable WHERE myTable.id_MyTable IS NULL

(您在此处创建原始表的空副本。此处的 WHERE 子句可确保您的新表为空...)

然后您可以使用您的数据网格操作 tempTable。在流程结束时,您可以编写以下内容:

INSERT INTO myTable SELECT * FROM tempTable
DROP temptable

代码是“即时”编写的,所以我不能保证,但想法就在这里。

【讨论】:

【参考方案2】:

您可以执行 Make Table 查询来创建表。

SELECT "X" AS MyId, 1 AS F1, 1 AS f2 INTO MyTempTable;

【讨论】:

以上是关于在 MS Access DB 中创建临时表的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 数据库 (2010) 如何从查询设计器创建临时表/过程/视图

MS Access 中的临时表

Amazon RDS:ER_RECORD_FILE_FULL:在存储过程中创建临时表时表已满

在存储过程中创建临时表

在 FUNCTION 中创建临时表 [重复]

在 SQL Server 中创建临时表是不是需要使用#?