我最近用access2010做了一个工资发放数据库,添加“成为当前"的事件过程时,用VB编的代码总是编译不成功,
显示运行时错误3704 对象关闭时,不允许操作,求高手指教!!!
------------------------------------------------------------------------------------------------
Private Sub Fillbtns()
'显示切换框中的列表
'显示按钮
Const connumbottons As Integer = 8
Dim rs As New ADODB.Recordset
Dim strsql As String
Dim intbtn As Integer
Me![btn1].SetFocus
For intbtn = 2 To connumbuttons
Me("btn" & intbtn).Visible = False
Me("lbl" & intbtn).Visible = False
Next intbtn
'打开表Switchboard Items
strsql = "SELECT * FROM[Switchboard Items]"
strsql = strsql & "WHERE [ItemNumber] > 0 AND [SwitchboardID]=" & Me![SwitchboardID]
strsql = strsql & "ORDER BY [ItemNumber];"
Set rs = Getrs(strsql)
If (rs.EOF) Then
Me![lbl1].Caption = "此切换面板页上无项目"
Else
While (Not (rs.EOF))
Me("btn" & rs![ItemNumber]).Visible = True
Me("lbl" & rs![ItemNumber]).Visible = True
Me("lbl" & rs![ItemNumber]).Caption = rs![ItemText]
rs.MoveNext
Wend
End If
'关闭数据集合和数据库
rs.Close
Set rs = Nothing
End Sub
------------------------------------------------------------------------------------------

解决方案 »

  1.   

    Getrs怎么写的?
    其中有没有打开连接(Connection.Open)?有没有提前关闭了连接?
      

  2.   

    Public Function Getrs(ByVal Strquery As String) As ADODB.Recordset
    Dim rs As New ADODB.Recordset
    Dim conn As New ADODB.Connection
    On Error GoTo getrs_error
    Set conn = CurrentProject.Connection
    rs.Open Strquery, conn, adopenkeyset, adLockOptimistic
    Set Getrs = rs
    getrs_exit:
    Set rs = Nothing
    Set conn = Nothing
    Exit Function
    getrs_error:
    MsgBox (Err.Description)
    Resume getrs_exit
    End Function
    ----------------------------------------
    这是Getrs的代码