AutoExec 模块未启动

use*_*980 2 ms-access vba module

我的数据存储表单有一个新模块 (AutoExec),用于在打开表单时测试与 SQL 服务器数据库的连接。只是它在打开时不会触发。我想知道我的代码中是否有什么东西导致了这个,这是我的第一个模块,所以我还不熟悉正确的形式。

Public Sub AutoExec()
Dim cnn As ADODB.Connection
Dim localrst As New ADODB.Recordset
Dim remoterst As New ADODB.Recordset

Set cnn = New ADODB.Connection
cnn.Open "Provider=SQLOLEDB; Data Source=DB\P003,49503; Initial Catalog=HRLearnDev;" _
    & "User Id=USERNAME; Password=PASSWORD;"

If cnn.State = adStateOpen Then

    MsgBox ("You have an established connection.")
  Else
    MsgBox ("Cannot connect to remote server. Data will be stored locally  to CDData Table until application is opened again.")

End If

cnn.Close
Dim rst As New ADODB.Recordset


End Sub
Run Code Online (Sandbox Code Playgroud)

Han*_*sUp 6

当数据库包含名为AutoExec的宏时,Access 将在数据库启动时运行该宏。

为了使其工作,AutoExec必须是 Access宏对象。在您的情况下,您有一个名为AutoExec的 VBA 过程。由于那不是宏对象,Access 不会在数据库启动时自动运行该过程。

我建议你创建一个 VBA 函数......

Public Function Startup()
Run Code Online (Sandbox Code Playgroud)

AutoExec过程主体中的代码添加到函数中。

然后创建一个新的 Access 宏(一个实际的 Access 宏对象 --- 在 Access 2007 的功能区上,选择Create->Macro),使用宏RunCode操作来运行您的新Startup()功能。将该宏对象命名为AutoExec

这是我在设计视图中打开的简单AutoExec示例宏的屏幕截图。

设计视图中的 AutoExec 宏