关于VB连接数Access据库的关闭问题
Option Explicit
Dim Rs As New ADODB.Recordset
Dim Conn As New ADODB.Connection
Private Sub cmdOpen_Click()
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\StayHome.mdb;Persist Security Info=False"
Conn.CursorLocation = adUseClient
Conn.Open strConn
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "Select * from test", Conn, adOpenKeyset, adLockOptimistic
' 绑定进DataGrid
Set DataGrid1.DataSource = Rs
cmdOpen.Enabled = False
End Sub
Private Sub cmdUpdate_Click()
Dim i As Integer
Dim b(1 To 5) As Integer
For i = 1 To 5
b(i) = i * 2
Conn.Execute ("update test set data='" & b(i) & "'" & "where N='" & i & "' ")
Picture1.Print i; " "; b(i)
Next i
End Sub
问题来了(代码是参照网上的):
我弄了三个按键:Open、Update、Save&Close
Open、Update两个按键已经成功实现其功能,
Save&Close这个按键我是想把对数据库的修改保存并关闭数据库,然后再按Open,又成功打开数据库。
我试过用
Rs.Close
Conn.Close
Set Rs = Nothing
Set Conn = Nothing
不行....提示出错
参考答案:Private Sub cmdOpen_Click()
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\StayHome.mdb;Persist Security Info=False"
set Conn = new adodb.connection'<====
Conn.CursorLocation = adUseClient
Conn.Open strConn
' 如果RecordSet的状态不是关闭状态,则关闭Recordset
set rs = new adodb.recordset'<====
If Rs.State <> adStateClosed Then Rs.Close
Rs.Open "Select * from test", Conn, adOpenKeyset, adLockOptimistic
' 绑定进DataGrid
Set DataGrid1.DataSource = Rs
cmdOpen.Enabled = False
End Sub
添上那两句应该可以了,关闭就用
Set Rs = Nothing
Set Conn = Nothing