【发布时间】:2011-05-16 12:29:02
【问题描述】:
我正在寻找有关如何将 SQL 数据库中的表结构复制为同一数据库中的另一个表的想法。
我有一个 SQL 数据库(统计数据),其中包含许多链接到我的 Access 数据库的大型事务表(即远高于 2Gb)。我需要定期归档当前数据并在 SQL 数据库中创建一个具有相同结构的新表。
我可以通过“tbl LESSON SESSION DETAILS”链接从 CurrentDb 导航到底层 SQL“dbo.tbl LESSON SESSION DETAILS”表和 SQL 数据库的连接字符串。
我已经研究过使用 DoCmd.TransferDatabase 来实现使用以下代码的结果:-
dbsA As Database
sTableName = "tbl LESSON SESSION DETAILS"
dbType = "ODBC Database"
sDatabasePath = CurrentDb.TableDefs(sTableName).Connect
Set dbsA = DBEngine(0).OpenDatabase("MyDB", dbDriverCompleteRequired, _
False, sDatabasePath)
sTableName = dbsA.TableDefs(sTableName).Name
sTableNameNew = sTableName & "_New"
DoCmd.TransferDatabase acExport, dbType, _
strTAbleName, acTable, dbsA, sTableNameNew, structureonly:=True
但是,当我运行此代码时,它会失败,因为 'acExport' 期望 sTableName 在 CurrentDB 中,而 sTableNameNew 在 dbsA 数据库中。更改 CurrentDb 可能是一种选择,但我还没有找到有关如何做到这一点的任何想法。
【问题讨论】:
标签: sql-server ms-access vba structure