使用传输数据库在数据库之间复制表时出现混乱

时间:2019-02-18 01:15:54

标签: access-vba ms-access-2013

我需要让用户创建新表,这些表将包含输入给报表处理的给定行。用户输入用于标识报告实例的名称和将包含报告行的表的名称。该报告是现有的Microsoft Access数据库套件的一部分。在此处描述的增强功能之前,将行程表输入到报告过程中。

我的最初尝试失败。

DoCmd方法正在前端数据库中运行,其概念是在后端创建一个新的表结构,然后将其适当地填充。行程表位于后端数据库中,并在前端链接。命令的结果是意外的。

DoCmd.TransferDatabase acExport, _
“Microsoft Access”, “Path to backend database”, _
acTable, “Itineraries”, “TestTable”, True

我希望后端数据库中有一个名为TestBills的表,可以从前端数据库链接到该表。这没有发生。整个行程表已复制到后端数据库中,其名称为TestBills。我说“有点”,因为TestBills表是后端数据库中到后端数据库本身的链接!我无法从前端数据库链接到该表。

1 个答案:

答案 0 :(得分:0)

我决定通过使用以下代码片段来解决此问题:

DoCmd.TransferDatabase acImport, "Microsoft Access", dbBN, _
acTable, "Itineraries", "ExtraBills", True
DoCmd.TransferDatabase acExport, "Microsoft Access", dbTest, _
acTable, "ExtraBills", "TestBills", True
DoCmd.TransferDatabase acLink, "Microsoft Access", dbTest, _ 
acTable, "TestBills", "TestBills", True
CurrentDb.TableDefs.Delete ("ExtraBills")

“ dbTest”和“ dbBN”是常量,具有指向两个后端数据库的路径。此摘要将Itineraries表结构从后端数据库复制到前端数据库,并将其重命名为“ ExtraBills”。然后,“附加帐单”被导出到Test数据库并命名为TestBills。然后将前端链接到后端的TestBills表,并从前端数据库中删除“ ExtraBills”。

此过程达到了预期的结果。我想这是“不要使用DoCmd的TransferDatabase方法导出表链接。