文档主页
MySQL Connector/ODBC 开发人员指南
相关文档 下载本手册
PDF(US Ltr) - 1.7Mb
PDF(A4) - 1.7Mb


8.2.1.1 Microsoft Access

通过 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 TABLEBLOB 列更改为 TEXT

  • Access 无法始终正确处理 MySQL DATE 列。如果您在使用这些列时遇到问题,请将列更改为 DATETIME

  • 如果 Access 中的列定义为 BYTE,则 Access 会尝试将其导出为 TINYINT,而不是 TINYINT UNSIGNED。如果列中的值大于 127,则会出现问题。

  • 如果 Access 中的表非常大(长),则打开它们可能需要很长时间。或者,您的虚拟内存可能会不足,并最终收到 ODBC 查询失败 错误,并且无法打开该表。要解决此问题,请选择以下选项

    • 返回匹配行 (2)

    • 允许大结果 (8)。

    这些加起来的值为 10 (OPTION=10)。

使用 Access、ODBC 和 Connector/ODBC 时,以下是一些可能有用的外部文章和提示