gpt4 book ai didi

mysql - 检查excel vba中是否存在DSN

转载 作者:行者123 更新时间:2023-11-29 20:23:11 24 4
gpt4 key购买 nike

我有一个连接到 MySQL 服务器的 Excel 工作簿。我放置了一个刷新按钮来刷新数据,它包含工作表的取消保护和保护语句。

我的问题是,当打开 Excel 文件并在不在网络中的计算机中单击“刷新”时,我会收到一个 DSN 创建向导,并且如果我在向导中按“取消”,则工作表将不 protected 。

我想放置一个 IF 条件来检查 DSN 是否可用,如果不可用,则应退出子程序。

有什么想法吗?

这是我的带有错误处理程序的代码,但我仍然收到 DSN 创建向导,并且在关闭 msgbox 后,工作表不 protected

On Error GoTo handler
Application.ScreenUpdating = False
Sheets("DEC-2015").Unprotect Password:="password"
ActiveWorkbook.Connections("Query from Sample").Refresh
Sheets("DEC-2015").Protect _
Password:="password", _
UserInterfaceOnly:=True, _
AllowFiltering:=True, _
AllowSorting:=True, _
AllowUsingPivotTables:=True
handler:
MsgBox "Server Connection Lost...", vbOKOnly + vbCritical, "Warning"
Exit Sub

最佳答案

通过将代码更改为以下内容来关闭警报:

Public Sub DoSomething()

On Error GoTo handler

With Application
.ScreenUpdating = False
.DisplayAlerts = False
End With

With ThisWorkbook
.Sheets("DEC-2015").Unprotect Password:="password"
.Connections("Query from Sample").Refresh
.Sheets("DEC-2015").Protect _
Password:="password", _
UserInterfaceOnly:=True, _
AllowFiltering:=True, _
AllowSorting:=True, _
AllowUsingPivotTables:=True
End With

With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With

Exit Sub

handler:
ThisWorkbookSheets("DEC-2015").Protect _
Password:="password", _
UserInterfaceOnly:=True, _
AllowFiltering:=True, _
AllowSorting:=True, _
AllowUsingPivotTables:=True

With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With

MsgBox "Server Connection Lost...", vbOKOnly + vbCritical, "Warning"

End Sub

关于mysql - 检查excel vba中是否存在DSN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39425992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com