mysql - 使用 1 个 MySQL 表进行访问,要求提供凭据
问题描述
我有一个使用本地 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 & "'"
解决方案
我建议不要在链接表上运行 Access 查询,而是使用动态创建的无 DSN传递查询。
这应该始终有效,或者引发可捕获的错误。
Const ConnectString = "ODBC;DRIVER={MySQL ODBC 5.1 Driver};SERVER=your.server.com;PORT=3306;DATABASE=mydatabase;UID=myuserid;PWD=mypassword"
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.CreateQueryDef("")
With qdf
' Setting .Connect turns it into a Pass-Through query
.Connect = ConnectString
' Need to set this for non-SELECT queries
.ReturnsRecords = False
' Note: you need to use MySql syntax here, not Access SQL, especially the correct date format
.SQL = "UPDATE XYZ SET ABC = 'DEF' WHERE GHI = 'JKL'"
' or since MySql has a NOW() function too, just this:
.SQL = "UPDATE foo SET LastUpdatedDate = NOW() WHERE ItemID = 'xyz'"
.Execute
End With
您也可以尝试保存的 Pass-Through 查询,它也可以正常工作。然后你只需要提供 current .Sql
,而不是连接字符串。
推荐阅读
- javascript - 如何在该州使用 Fetch 请求中的数据?
- c++ - 随机字符串生成器不编辑我的字符串数组(C++)
- android - 在 chid 自定义视图中获取视图属性
- firebase - BigQuery Firebase Crashlytics - 重新加载数据
- java - Spring security 4 - configure(AuthenticationManagerBuilder auth) 在没有 @Autowired 的情况下工作
- android - 我们可以配置 android Work Manager 在根据距离发生位置变化时运行吗?
- javascript - 如何修复我的 onclick 事件?它似乎不起作用
- list - Racket lang:访问列表中的元素
- java - JaCoCo 报告生成发生错误
- json - 如何合并 bash shell 中唯一的对象 TargetGroupARNs 和 TargetGroupArn?