亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

把數據寫入到數據庫,運行窗體總是提示:屬性值無效?

把數據寫入到數據庫,運行窗體總是提示:屬性值無效?

C PHP
滄海一幻覺 2022-08-11 11:07:08
然后鼠標就停在Adodc1.Recordset.EditMode這里。請高手幫幫忙,想知道Adodc1.Recordset.EditMode和Data.Edit有什么區別?下面是代碼,代碼有錯嗎?您寫的答案我看不懂啊,可以不可以寫簡單點,到底我是錯在哪了,我還搞不明白。
查看完整描述

2 回答

?
慕妹3242003

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表示進入編輯狀態。


查看完整回答
反對 回復 2022-08-15
?
慕慕森

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表示進入編輯狀態。


查看完整回答
反對 回復 2022-08-15
  • 2 回答
  • 0 關注
  • 226 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號