我最近用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
------------------------------------------------------------------------------------------
显示运行时错误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
------------------------------------------------------------------------------------------
其中有没有打开连接(Connection.Open)?有没有提前关闭了连接?
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的代码