【发布时间】:2019-05-12 17:16:06
【问题描述】:
我有一个使用本地 sql 服务器后端的访问数据库,用于除 1 个基于 Web 的 MySQL 表之外的所有表。 MySQL表有50行左右,3个字段,一点都不大。我有一个 odbc 连接设置,并且该表与保存的密码链接。这张表每天最多更新30次...有时连接中断,会出现MySQL连接弹窗...点击test会成功,点击ok会让代码继续。它正在进行 1 行更新 (SET LastUpdatedDate = #" & now() & "# WHERE ItemID = 'xyz')。
我想捕获一个错误,或者如果它不可用时让它在没有连接的情况下继续......但似乎没有产生错误。发生这种情况时,我宁愿不更新表,然后必须物理选择 ok 以使其再次运行。此问题存在于美国各地的多台 PC 上的多个位置。我认为这是托管 MySQL 数据库的服务器有问题 - 我只是想知道如何忽略它们并继续使用其他代码......再次,没有产生错误(所以 On Error ......不会'不工作)。有任何想法吗?使用 Access 2016。
更新:我当前的设置是 ping 服务器...如果 ping 得到响应,我认为它已启动...然后我运行 'CurrentDb.Execute "UPDATE XYZ SET ABC = 'DEF' WHERE GHI ='JKL'”。就这么简单。如果我尝试查询表 XYZ 并且它不可用,我会得到相同的连接弹出窗口。我应该如何刷新桌子?删除链接并重新创建?
新更新
终于开始尝试下面 Andre 提出的无 DSN 直通查询。当我进入“执行”步骤时,我收到一条错误消息,提示我无法执行选择查询......但它是一个更新查询。这是 SQL 字符串....SQL = "UPDATE [Status] SET ItemDate = NOW() WHERE PlantID = '" & PlantID & "' AND ItemID = '" & ItemID & "'"
【问题讨论】:
-
老实说,我会更改代码以在每次执行时刷新链接。这将强制它刷新,然后你不会看到错误。
-
发布您当前的代码。有几种方法可以解决此问题,但您需要向我们展示您目前所拥有的。
-
您是否尝试过 Pass-Through 查询?