vba - DoCmd.TransferDatabase 问题
问题描述
在我的代码中,我正在创建一个新数据库,然后使用 DoCmd.TransferDatabase 将一些表复制到其中。这以前没有问题,现在我收到错误:“运行时错误'3709':在任何记录中都找不到搜索键。我的代码是:
Set db = DBEngine.CreateDatabase(sPath, dbLangGeneral)
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"MATerials", "MAT", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"new_2Kilo", "TWOK", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"tblCSMP", "tblCSMP", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"tblICMP", "tblICMP", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"tblMARMC_USERS", "tblMARMC_USERS", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"tblVisit_Personnel", "tblVisit_Personnel", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"Training", "Training", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"tblTeamMember", "tblTeamMember", False
DoCmd.TransferDatabase acExport, "Microsoft Access", sPath, acTable,
"WORK_NOTIFICATIONS", "WORK_NOTIFICATIONS", False
如果我打开新创建的数据库并单击“启用内容”按钮,该功能将继续。任何想法如何解决这个问题?
解决方案
无法将不受信任的位置导出到使用DoCmd.TransferDatabase
.
然而,Afaik,您可以使用查询很好地导出到它们,因为这些是在数据库引擎级别而不是应用程序级别处理的,并且信任问题在应用程序级别。
要编写导出表的查询:
SELECT * INTO [;DATABASE=C:\Path\To\File.accdb].NewTableName FROM OldTableName
请注意,这仅导出数据而非相关信息(索引、哪些列可见、查找等),因此在功能上有所不同。
推荐阅读
- javascript - 如何使用 CSS 打开和关闭操作菜单?
- sql - 我不能使用“全部插入”将值插入表中
- python - 在 Dockerfile 中运行 py.test
- javascript - 如何避免必须点击 TouchableOpacity 两次才能触发 onPress 事件?
- javascript - 我没有得到以特定 json 格式在请求正文中发送的值
- jquery - Bootstrap-Table 1.15.4 分页每页行数下拉菜单不起作用
- image - 当计时器到达某个时间时如何完成一个动作
- powershell - 使用 Start-Process 运行 VBScript
- c - 为什么这个程序只打印第一个字符?
- python - 如何在 django-registration 中设置注销 url?