Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

recordset的close和nothing的区别?

冰糖  发表于:2011-11-19 20:39:09  
复制

登陆窗体,之前是

rs.close

Set rs = Nothing

这样点确定之后,提示对象已关闭,无法进行操作。后来把close去掉就好了。

不解的是,清空不是对象不存在了吗?先关闭再清空和直接清空最后有什么不一样?

 

Option Compare Database
Option Explicit


Private Sub OK_Click()
  Dim strSql As String
  Dim rs As ADODB.Recordset
  Set rs = New ADODB.Recordset
   If IsNull(Me.username) Or Me.username = "" Then
      DoCmd.Beep
      MsgBox ("请输入用户名称!")
   ElseIf IsNull(Me.Password) Or Me.Password = "" Then
      DoCmd.Beep
      MsgBox "请输入密码!"
   Else
      strSql = "select * from 管理员 where 用户名='" & Me.username & "' and 密码 = '" & Me.Password & "'"
      Set rs = GetRs(strSql)
      If rs.EOF Then
         DoCmd.Beep
         MsgBox ("用户名或密码错误!")
         Me.username = ""
         Me.Password = ""
         Me.username.SetFocus
         Exit Sub
      Else
         DoCmd.Close
         check = True
         DoCmd.OpenForm ("主切换面板")
      End If
   End If
   Set rs = Nothing

End Sub

 

Top
洒家只抽烟不喝酒 发表于:2011-12-27 21:23:57

nothing 是释放变量的内存空间吧,应该只是释放了变量rs所占用的内存空间,但rs本身代表的ADO连接还存在。

是不是这个原因,求老师详解。。



总记录:1篇  页次:1/1 9 1 :