VB6 - 将数据从 mySQL 表插入访问表

Posted

技术标签:

【中文标题】VB6 - 将数据从 mySQL 表插入访问表【英文标题】:VB6 - Inserting a data to an Access Table from a mySQL Table 【发布时间】:2019-03-01 05:36:53 【问题描述】:

我有一个使用 Access 数据库和 mysql 通过 VB6 创建的桌面应用程序

应用程序部署在没有 MS Access 的客户端计算机中。

MS Access 数据库和 MySQL 数据库具有相同的表。

我要做的是使用 VB6 应用程序将表数据从 MySQL 数据库复制到 Access 表中。我正在考虑使用这样的东西:

INSERT INTO Target (ID, Value)
SELECT ID, Value
FROM Source WHERE NOT EXISTS (SELECT * FROM Target WHERE Target.ID = Source.ID)

这可能吗?

【问题讨论】:

这就是问题所在。我不知道在哪里运行查询,因为它来自两个不同的数据源。我可以像 dbAccess.Excecute “INSERT INTO tblTest.dbAccess (ID, Values) SELECT ID, Value FROM tblTest.dbmySQL WHERE NOT EXISTS... 以 2 mdb db 为例。看看能不能适应***.com/questions/26047864/… 如果 ID 和 Value 是唯一索引,则不需要 WHERE 子句。 @June7 :尝试从您的链接中调整代码,但没有运气。我似乎无法调用 MySQL 数据库。至于您的第二条评论,我需要 WHERE 子句,因为它会检查 ID 是否已存在于 Access 数据库中。 如果 ID 是唯一索引或主键,Access 将不允许重复记录 - 它只会无法提交到表。但使用它也不应该受到伤害。 【参考方案1】:

可以,可以直接从Access中查询ODBC数据源:

INSERT INTO Target (ID, Value)
SELECT ID, Value
FROM [ODBC;Driver=MySQL ODBC 5.2 UNICODE Driver;Server=myServer;Database=myDataBase;
User=myUsername;Password=myPassword;].Source 
WHERE NOT EXISTS (SELECT * FROM Target WHERE Target.ID = Source.ID)

您需要在 Access 数据库上执行此查询(我建议使用 DAO 执行此操作),然后将连接并从 MySQL 加载数据。

【讨论】:

虽然在 DAO 版本和最后一个 SELECT 查询方面有一些细微差别和需要改变的东西(比如将其设置为一列而不是星号),但这个答案对我有用。谢谢!

以上是关于VB6 - 将数据从 mySQL 表插入访问表的主要内容,如果未能解决你的问题,请参考以下文章

Mysql:我想创建一个触发器,它将基于员工表和类别表将数据插入用户访问权限表

从 .csv 文件将数据插入多个 MySQL 数据库表

MYSQL将数据从一个表插入到另一个表中

从访问数据库中选择表并在c#上插入sql多个表

将数据从一个表更新到另一个表并在新的 ms 访问 .net 时插入

MySQL 中将一个表的数据插入另外一个表怎么做