adopenkeyset , adlockoptmistic时find 的应用
在用VB与SQL设计程序时,用ADO方式连接数据库,recordset集生成时,第3,4个参数值是adopenkeyset , adlockoptmistic不无用find,无法用updata,请问如何解决这个问题?
--------------------编程问答-------------------- 说清楚具体一点 --------------------编程问答-------------------- adLockOptimistic 你拼错了,以后要注意,拼对的话该大写的地方会自动大写
'工程引用Microsoft ActiveX Data Objects 2.5 Library
'添加 Command1
Option Explicit
Dim i%, strSQL$
Dim conn As Connection
Dim rs As New ADODB.Recordset
Private Sub Form_Load()
Set conn = New Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & "c:\bwscale.mdb;Persist Security Info=False"
strSQL = "select * from bwcust"
rs.Open strSQL, conn, adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
Combo1.Clear
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
Combo1.AddItem rs.Fields(0)
rs.MoveNext
Next i
End If
End Sub
Private Sub Command1_Click()
rs.MoveFirst
rs.Find "company = " & Chr(39) & "霸王衡器公司" & Chr(39)
If Not rs.EOF Then MsgBox rs.Fields(0)
rs.Fields(0) = "123"
rs.Update
MsgBox rs.Fields(0) '看到没有,两次的Fields(0)不同,表示Update成功了.
End Sub
--------------------编程问答-------------------- 改为
Option Explicit
Dim i%, strSQL$
Dim conn As Connection
Dim rs As New ADODB.Recordset
Private Sub Form_Load()
Set conn = New Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & "c:\bwscale.mdb;Persist Security Info=False"
strSQL = "select * from bwcust"
rs.Open strSQL, conn, adOpenKeyset, adLockOptimistic
If rs.RecordCount > 0 Then
Combo1.Clear
rs.MoveFirst
For i = 0 To rs.RecordCount - 1
Combo1.AddItem rs.Fields(0)
rs.MoveNext
Next i
End If
End Sub
Private Sub Command1_Click()
rs.MoveFirst
rs.Find "company = " & Chr(39) & "霸王衡器公司" & Chr(39)
If Not rs.EOF Then
MsgBox rs.Fields(0)
rs.Fields(0) = "123"
rs.Update
MsgBox rs.Fields(0) '看到没有,两次的Fields(0)不同,表示Update成功了.
End If
End Sub
--------------------编程问答-------------------- 这里有一个详细一点的说明,感兴趣的话可以去看一下
http://www.16boke.cn/article.asp?id=91
补充:VB , 数据库(包含打印,安装,报表)