登录时自动测试刷新ODBC数据源(sql server)避免弹出输入用户名和密码

2017-08-17 09:22:00
zstmtony
原创
460

使用Odbc数据源链接到Sql server数据库时,如果用户名和密码没有保存在数据表的话,则打开链接表时第一次总是会提示要输入Sql server用户名和密码

可以使用下面的函数,将用户名和密码放在代码中(或从加密的数据表中读取用户名和密码),这样就避免别人知道你的数据库用户名和密码。


Function gt_TestOdbc() As Boolean
On Error GoTo err_c
DoCmd.SetWarnings False

Dim Response As Integer
Dim connstr As String, mydb As DAO.Database
      connstr = "ODBC;" & _
                "DRIVER=SQL Server;" & _
                "SERVER=127.0.0.1,7788;" & _
                "DATABASE=wzk;" & _
                "UID=sa;" & _
                "PWD=admin"

Set mydb = DBEngine.Workspaces(0).OpenDatabase("", False, False, connstr)

gt_TestOdbc = True
Exit Function
err_c:

gt_TestOdbc = False
MsgBox "数据库用户,口令错误,重新登录!", , "文具"
Exit Function
End Function


但如果用户名 密码不对,或Sql server服务器无法连接时,则会弹出系统的要求输入数据库用户名和密码的窗口,
1.刷新链接这个系统窗口无法禁止的
2.在使用之先先判断一个表是否可连接 ,或先判断服务器IP是否可PING通.如果不通,基本上就判断连不到,采取措施
3. 也可在创建之前先用ADO试连接,能连接成功,直接创建链接表,否则,捕获ado连接错误信息,判断是否服务器不通,并直接提示连接不通,退出

分享