Access中ADP启动时使用VBA代码判定数据库连接是否有效并重新设定数据库连接

2002-03-24 07:46:00
zhuyiwen-Office交流网
原创
4370
如何在ADP启动时,使用VBA代码判定数据库连接是否有效并重新设定数据库连接?

在应用程序结束时,使用 MakeADPConnectionless 清除ADP连接,在程序启动就不会再出现提示连接的对话框,使用 CurrentProject.IsConnected 判定 ADP 是否连接,如果未连接,使用 sCreateConnection 创建新的连接字符串,使用 CurrentProject.OpenConnection 连接。

作者:大熊
Sub MakeADPConnectionless()
Application.CurrentProject.CloseConnection '关闭连接
Application.CurrentProject.OpenConnection '将连接设置为无
End Sub

附:在ADP项目中创建ADP的数据库的默认连接的代码
Public Function sCreateConnection(sSvrName As String, sUID As String, sPWD As String, sDatabase As String) As String
'********************************************************************
'该函数在ADP中检查连接,如果没有,它将通过输入参数创建一个连接
'
'输入:
'   sSvrName    数据库服务器名
'   sUID        用户名
'   sPWD        口令
'   sDatabase   MSDE数据库名
'
'输出:
'   连接状态
'
'********************************************************************

On Error GoTo sCreateConnectionTrap:

If Application.CurrentProject.BaseC Then
'表示 ADP 处于无连接状态
sConnectionString = & _
"PROVIDER=SQLOLEDB.1; " & _
"PASSWORD=" & sPWD & ";" & _
"PERSIST SECURITY INFO=TRUE; USER ID=" & sUID & "; "  & _
"INITIAL CATALOG=" & sDatabase & ";" & _
"DATA SOURCE=" & sSvrName
Application.CurrentProject.OpenConnection sConnectionString
sCreateC & sDatabase & " 数据库的连接!"
Else '连接已存在
sCreateC & sDatabase & " 数据库的连接!"
End If


sCreateConnectionExit:
Exit Function

sCreateConnectionTrap:
sCreateConnection = Err.Description
Resume sCreateConnectionExit

End Function

(ADP-相关文章技巧链接):
什么是ADP,了解ADP的优缺点
分享