AutoExec模块未启动

时间:2014-02-24 15:08:39

标签: vba ms-access module access-vba

我的数据存储表单有一个新模块(AutoExec),用于在打开表单时测试与SQL Server数据库的连接。只有在打开时才会点火。我想知道我的代码中是否有某些内容导致这种情况,这是我的第一个模块,所以我还不熟悉正确的表单。

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

1 个答案:

答案 0 :(得分:4)

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

为了使其正常工作, AutoExec 必须是Access 宏对象<​​/ em>。在您的情况下,您有一个名为 AutoExec 的VBA过程。由于这不是宏对象<​​/ em>,因此Access不会在数据库启动时自动运行该过程。

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

Public Function Startup()

AutoExec 程序正文中的代码添加到该函数中。

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

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

AutoExec macro in design view