【问题标题】:MS Access connected to Two DbsMS Access 连接到两个数据库
【发布时间】:2018-03-11 13:43:06
【问题描述】:

我正在开发一个连接到两个数据库的 Microsoft Access 项目,一个是托管在 Azure 中的 SQL Server,另一个是托管在 Linux 服务器上的 MySql。

在我的表单中,我尝试将数据从 MySQL 导入 Azure 服务器。

我已成功连接到数据库并将值插入到我的数据库中

             From  MySql /Linux        ---- INTO ---->         Azure/SQL 

通过查询和我的代码手动插入。我表单上的代码本质上是运行 SQL 查询以从表 MySQL 中选择到 SQL Server 数据库。

我有一个主键,它是目标表中的唯一标识符 (guid)。所以当然这不能为空。在对此进行测试时,我通过 SQL 插入语句在表中手动插入了一条记录。看到这有效,所以我继续测试由按钮单击事件触发的相同查询。哪个有效。它将从另一个表中导入记录,并默认创建一个guid。然而,经过进一步测试,我意识到当我使用空表时,它不会成功导入到另一个表中。 Access 将在单击按钮时运行查询,但随后警告我不会传输任何记录。

我的问题是为什么会这样?将新记录正确插入空表中我缺少什么?它似乎只适用于具有现有记录的表。

【问题讨论】:

  • 这实际上取决于您的确切设置,以及该查询在做什么。如果没有更多信息,我认为没有人可以回答这个问题
  • 我对“使用空表无法成功导入另一个表”感到困惑。当然,如果一个表是空的,则没有记录可以导入另一个表。然后你说“在空表中插入一条新记录”。那么是目标表为空而导入失败?那会很奇怪。发布查询和代码以供分析。
  • 啊,我的措辞不正确。我正在尝试将新记录插入到空表中。查询的示例版本如下所示... INSERT INTO destTable ( DateEntered, FirstName, LastName ) SELECT sourceTable.DateCreated, sourceTable.FirstName, sourceTable.LastName FROM sourceTable, destTable

标签: mysql sql-server azure ms-access vba


【解决方案1】:

可能存在术语问题。使用 Access 的术语;可以分两步完成:使用查询设计视图功能

一个。使用要移动的记录表进行选择查询。用一个名字保存它 - 我现在将它命名为 Q1。

b.进行追加查询;首先选择 Q1 作为记录源 - 当您将其标识为 Append 时,它将询问目标表,您将选择它。然后根据需要对齐字段。将此另存为 A2 查询。

那么您需要做的就是持续触发 A2 查询。

在 Access 术语中,有 Select、Append、Update 而不是 Insert - 因此,尽管 Update 查询的 SQL 语法确实是 INSERT INTO,但我能想到的可能是您正在调用 Update 方法,这当然需要成为要覆盖的记录。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多