通过 Connector/ODBC 改善 Microsoft Access 和 MySQL 之间的集成
对于所有版本的 Access,请启用 Connector/ODBC
返回匹配行选项。对于 Access 2.0,还要启用模拟 ODBC 1.0选项。在要更新的所有表中包含
TIMESTAMP列。为了获得最大程度的可移植性,请勿在列声明中使用长度规范(在 4.1 之前的 MySQL 版本中不支持)。在要与 Access 一起使用的每个 MySQL 表中包含 主键。否则,新行或更新的行可能会显示为
#DELETED#。仅使用
DOUBLE浮点字段。Access 在与单精度浮点数进行比较时会失败。症状通常是新行或更新的行可能会显示为#DELETED#,或者您找不到或更新行。-
如果您使用 Connector/ODBC 链接到具有
BIGINT列的表,则结果将显示为#DELETED#。解决方法是再添加一个虚拟列,其数据类型为
TIMESTAMP。在 ODBC DSN 管理器的连接对话框中选择
将 BIGINT 列更改为 INT选项。从 Access 中删除表链接并重新创建它。
旧记录可能仍显示为
#DELETED#,但新添加/更新的记录将正确显示。 -
如果在添加
TIMESTAMP列后仍收到错误其他用户已更改您的数据,则以下技巧可能会有所帮助不要使用
表数据表视图。而是创建一个包含所需字段的表单,并使用该表单数据表视图。将TIMESTAMP列的DefaultValue属性设置为NOW()。考虑隐藏TIMESTAMP列,以免用户感到困惑。 在某些情况下,Access 可能会生成 MySQL 无法理解的 SQL 语句。您可以通过从 Access 菜单中选择
“查询|SQLSpecific|传递”来解决此问题。在 Windows NT 上,Access 将
BLOB列报告为OLE 对象。如果您想改为使用MEMO列,请使用ALTER TABLE将BLOB列更改为TEXT。Access 无法始终正确处理 MySQL
DATE列。如果您在使用这些列时遇到问题,请将列更改为DATETIME。如果 Access 中的列定义为
BYTE,则 Access 会尝试将其导出为TINYINT,而不是TINYINT UNSIGNED。如果列中的值大于 127,则会出现问题。-
如果 Access 中的表非常大(长),则打开它们可能需要很长时间。或者,您的虚拟内存可能会不足,并最终收到
ODBC 查询失败错误,并且无法打开该表。要解决此问题,请选择以下选项返回匹配行 (2)
允许大结果 (8)。
这些加起来的值为 10 (
OPTION=10)。
使用 Access、ODBC 和 Connector/ODBC 时,以下是一些可能有用的外部文章和提示
-
优化 Access ODBC 应用程序