2 回答

TA貢獻1824條經驗 獲得超6個贊
表中要有主鍵
打開記錄集用
adOpenStatic,
adLockBatchOptimistic
updatebatch放在你確定要更新的時候
相應地取消更新用cancelbatch
CursorType、LockType
和
EditMode
屬性范例
該范例說明如何在打開
Recordset
之前設置
CursorType
和
LockType
屬性。同時還顯示不同情況下
EditMode
的屬性值。該過程運行時需要
EditModeOutput
函數。
Public
Sub
EditModeX()
Dim
cnn1
As
ADODB.Connection
Dim
rstEmployees
As
ADODB.Recordset
Dim
strCnn
As
String
'
使用雇員表中的數據打開記錄集。
Set
cnn1
=
New
ADODB.Connection
strCnn
=
"Provider=sqloledb;"
&
_
"Data
Source=srv;Initial
Catalog=pubs;User
Id=sa;Password=;
"
cnn1.Open
strCnn
Set
rstEmployees
=
New
ADODB.Recordset
Set
rstEmployees.ActiveConnection
=
cnn1
rstEmployees.CursorType
=
adOpenKeyset
rstEmployees.LockType
=
adLockBatchOptimistic
rstEmployees.Open
"employee",
,
,
,
adCmdTable
'
顯示不同編輯狀態下的
EditMode
屬性。
rstEmployees.AddNew
rstEmployees!emp_id
=
"T-T55555M"
rstEmployees!fname
=
"temp_fname"
rstEmployees!lname
=
"temp_lname"
EditModeOutput
"After
AddNew:",
rstEmployees.EditMode
rstEmployees.UpdateBatch
EditModeOutput
"After
UpdateBatch:",
rstEmployees.EditMode
rstEmployees!fname
=
"test"
EditModeOutput
"After
Edit:",
rstEmployees.EditMode
rstEmployees.Close
'
刪除新記錄,因為這只是演示。
cnn1.Execute
"DELETE
FROM
employee
WHERE
emp_id
=
'T-T55555M'"
End
Sub
Public
Function
EditModeOutput(strTemp
As
String,
_
intEditMode
As
Integer)
'
打印基于
EditMode
屬性值的報表。
Debug.Print
strTemp
Debug.Print
"
EditMode
=
";
Select
Case
intEditMode
Case
adEditNone
Debug.Print
"adEditNone"
Case
adEditInProgress
Debug.Print
"adEditInProgress"
Case
adEditAdd
Debug.Print
"adEditAdd"
End
Select
End
Function
Adodc1.Recordset.EditMode這句話是表示Adodc1當前的狀態
在添加前先判斷該數據在數據庫中是否存在
data.edit表示進入編輯狀態。

TA貢獻1856條經驗 獲得超17個贊
表中要有主鍵
打開記錄集用 adOpenStatic, adLockBatchOptimistic
updatebatch放在你確定要更新的時候
相應地取消更新用cancelbatch
CursorType、LockType 和 EditMode 屬性范例
該范例說明如何在打開 Recordset 之前設置 CursorType 和 LockType 屬性。同時還顯示不同情況下 EditMode 的屬性值。該過程運行時需要 EditModeOutput 函數。
Public Sub EditModeX()
Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strCnn As String
' 使用雇員表中的數據打開記錄集。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn
Set rstEmployees = New ADODB.Recordset
Set rstEmployees.ActiveConnection = cnn1
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockBatchOptimistic
rstEmployees.Open "employee", , , , adCmdTable
' 顯示不同編輯狀態下的 EditMode 屬性。
rstEmployees.AddNew
rstEmployees!emp_id = "T-T55555M"
rstEmployees!fname = "temp_fname"
rstEmployees!lname = "temp_lname"
EditModeOutput "After AddNew:", rstEmployees.EditMode
rstEmployees.UpdateBatch
EditModeOutput "After UpdateBatch:", rstEmployees.EditMode
rstEmployees!fname = "test"
EditModeOutput "After Edit:", rstEmployees.EditMode
rstEmployees.Close
' 刪除新記錄,因為這只是演示。
cnn1.Execute "DELETE FROM employee WHERE emp_id = 'T-T55555M'"
End Sub
Public Function EditModeOutput(strTemp As String, _
intEditMode As Integer)
' 打印基于 EditMode 屬性值的報表。
Debug.Print strTemp
Debug.Print " EditMode = ";
Select Case intEditMode
Case adEditNone
Debug.Print "adEditNone"
Case adEditInProgress
Debug.Print "adEditInProgress"
Case adEditAdd
Debug.Print "adEditAdd"
End Select
End Function
Adodc1.Recordset.EditMode這句話是表示Adodc1當前的狀態
在添加前先判斷該數據在數據庫中是否存在
data.edit表示進入編輯狀態。
- 2 回答
- 0 關注
- 226 瀏覽
添加回答
舉報