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:我想创建一个触发器,它将基于员工表和类别表将数据插入用户访问权限表