|
本人从其它网站下载了下面关于Access中事务处理的例子,但执行时在红色语句处提示编译错误,要求对象,不知道是否要先引用点什么?或者Access2000不支持事务回滚?
Public Sub BeginTransX()
Dim cnn1 As ADODB.Connection
Dim rstTitles As ADODB.Recordset
Dim strCnn As String
Dim strTitle As String
Dim strMessage As String
' 打开连接。
Set strcnn = currentproject.connection
Set cnn1 = New ADODB.Connection
cnn1.Open strCnn
' 打开 Titles 表。
Set rstTitles = New ADODB.Recordset
rstTitles.CursorType = adOpenDynamic
rstTitles.LockType = adLockPessimistic
rstTitles.Open "titles", cnn1, , , adCmdTable
rstTitles.MoveFirst
'开始事务
cnn1.BeginTrans
' 在记录集中循环并询问是否想要更改指定标题的类型。
Do Until rstTitles.EOF
If Trim(rstTitles!Type) = "psychology" Then
strTitle = rstTitles!Title
strMessage = "Title: " & strTitle & vbCr & _
"Change type to self help?"
' 更改指定雇员的标题。
If MsgBox(strMessage, vbYesNo) = vbYes Then
rstTitles!Type = "self_help"
rstTitles.Update
End If
End If
rstTitles.MoveNext
Loop
' 询问用户是否想提交以上所做的全部更改。
If MsgBox("Save all changes?", vbYesNo) = vbYes Then
'如果回答是,就结束事务
cnn1.CommitTrans
Else
'如果回答否,就回滚事务,取消所有操作
cnn1.RollbackTrans
End If
rstTitles.Close
cnn1.Close
End Sub
[ 本帖最后由 3828688 于 2008-3-19 14:47 编辑 ] |
|