首页 > 解决方案 > 通过 Docmd TransferDatabase 将表从 MS Access 导出到 Snowflake

问题描述

DoCmdTransfer 数据库失败并出现运行时错误 3146 ODBC -调用失败。无法执行 CREATE TABLE。此会话没有当前架构。调用“USE SCHEMA”,或使用限定名称。

DoCmd.TransferDatabase acExport, "ODBC Database", "ODBC;DSN=ODBC32- 
AccessToSWF;UID=yyyy;PWD=xxxx;LANGUAGE=us_english;" & "DATABASE=test", 
acTable, "WB_EXP_OUT", "WB_EXP_OUT"

我期待在测试数据库的默认模式中将表“WB_EXP_OUT”导出到雪花。我没想到会被请求架构,我不知道在代码中的哪里输入它。

标签: sqlodbcexportms-access-2010snowflake-cloud-data-platform

解决方案


看起来您正在使用的工具使用 ODBC 驱动程序。根据您问题的标题,您似乎正在使用https://docs.microsoft.com/en-us/office/vba/api/access.docmd.transferdatabase和 Visual Basic,您使用的是 DSN 工具吗?

如果是这样,我确实找到了另一个有此错误的用户,并在 Suzy 的此评论中修复了它。https://community.snowflake.com/s/question/0D50Z00009LIzbGSAT/export-from-ms-access-to-snowflake-missing-pwd-error

FrankBullit 3 个月前 @suzy... 我有关于 docmd 方法的更新:我想我已经建立了连接,但它失败了,运行时错误 '3146' ODBC 调用失败。

无法执行 CREATE TABLE。此会话没有当前架构。

调用“USE SCHEMA”或使用限定名称。

这是代码,但我找不到有效的修复程序

DoCmd.TransferDatabase acExport, "ODBC 数据库", "ODBC;DSN=ODBC32-AccessToSWF;UID=edifolco;PWD=xxxx;LANGUAGE=us_english;" &“数据库=测试”,活动表,“WB_EXP_OUT”,“WB_EXP_OUT”

不确定您是否真的可以指定架构。

suzy.lockwood 3 个月前

嗨......这些是一些非常奇怪的错误。您是否通过数据源管理工具使用系统或用户 DSN?需要配置 DSN,然后它应该在注册表中有一个关联的条目,您可以在其中编辑其他参数。DSN 也可以具有架构或数据库参数,或者您也可以包含在注册表项中。

那有帮助吗?


推荐阅读