把数据写入到数据库,运行窗体总是提示:属性值无效?

然后鼠标就停在Adodc1.Recordset.EditMode这里。
请高手帮帮忙,想知道Adodc1.Recordset.EditMode和Data.Edit有什么区别?
下面是代码,代码有错吗?
您写的答案我看不懂啊,可以不可以写简单点,到底我是错在哪了,我还搞不明白。



沧海一幻觉
浏览 185回答 2
2回答

慕妹3242003

表中要有主键打开记录集用adOpenStatic,adLockBatchOptimisticupdatebatch放在你确定要更新的时候相应地取消更新用cancelbatchCursorType、LockType和EditMode属性范例该范例说明如何在打开Recordset之前设置CursorType和LockType属性。同时还显示不同情况下EditMode的属性值。该过程运行时需要EditModeOutput函数。PublicSubEditModeX()Dimcnn1AsADODB.ConnectionDimrstEmployeesAsADODB.RecordsetDimstrCnnAsString'使用雇员表中的数据打开记录集。Setcnn1=NewADODB.ConnectionstrCnn="Provider=sqloledb;"&_"DataSource=srv;InitialCatalog=pubs;UserId=sa;Password=;"cnn1.OpenstrCnnSetrstEmployees=NewADODB.RecordsetSetrstEmployees.ActiveConnection=cnn1rstEmployees.CursorType=adOpenKeysetrstEmployees.LockType=adLockBatchOptimisticrstEmployees.Open"employee",,,,adCmdTable'显示不同编辑状态下的EditMode属性。rstEmployees.AddNewrstEmployees!emp_id="T-T55555M"rstEmployees!fname="temp_fname"rstEmployees!lname="temp_lname"EditModeOutput"AfterAddNew:",rstEmployees.EditModerstEmployees.UpdateBatchEditModeOutput"AfterUpdateBatch:",rstEmployees.EditModerstEmployees!fname="test"EditModeOutput"AfterEdit:",rstEmployees.EditModerstEmployees.Close'删除新记录,因为这只是演示。cnn1.Execute"DELETEFROMemployeeWHEREemp_id='T-T55555M'"EndSubPublicFunctionEditModeOutput(strTempAsString,_intEditModeAsInteger)'打印基于EditMode属性值的报表。Debug.PrintstrTempDebug.Print"EditMode=";SelectCaseintEditModeCaseadEditNoneDebug.Print"adEditNone"CaseadEditInProgressDebug.Print"adEditInProgress"CaseadEditAddDebug.Print"adEditAdd"EndSelectEndFunctionAdodc1.Recordset.EditMode这句话是表示Adodc1当前的状态在添加前先判断该数据在数据库中是否存在data.edit表示进入编辑状态。

慕慕森

表中要有主键打开记录集用 adOpenStatic, adLockBatchOptimisticupdatebatch放在你确定要更新的时候相应地取消更新用cancelbatchCursorType、LockType 和 EditMode 属性范例该范例说明如何在打开 Recordset 之前设置 CursorType 和 LockType 属性。同时还显示不同情况下 EditMode 的属性值。该过程运行时需要 EditModeOutput 函数。Public Sub EditModeX()Dim cnn1 As ADODB.ConnectionDim rstEmployees As ADODB.RecordsetDim strCnn As String' 使用雇员表中的数据打开记录集。Set cnn1 = New ADODB.ConnectionstrCnn = "Provider=sqloledb;" & _"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "cnn1.Open strCnnSet rstEmployees = New ADODB.RecordsetSet rstEmployees.ActiveConnection = cnn1rstEmployees.CursorType = adOpenKeysetrstEmployees.LockType = adLockBatchOptimisticrstEmployees.Open "employee", , , , adCmdTable' 显示不同编辑状态下的 EditMode 属性。rstEmployees.AddNewrstEmployees!emp_id = "T-T55555M"rstEmployees!fname = "temp_fname"rstEmployees!lname = "temp_lname"EditModeOutput "After AddNew:", rstEmployees.EditModerstEmployees.UpdateBatchEditModeOutput "After UpdateBatch:", rstEmployees.EditModerstEmployees!fname = "test"EditModeOutput "After Edit:", rstEmployees.EditModerstEmployees.Close' 删除新记录,因为这只是演示。cnn1.Execute "DELETE FROM employee WHERE emp_id = 'T-T55555M'"End SubPublic Function EditModeOutput(strTemp As String, _intEditMode As Integer)' 打印基于 EditMode 属性值的报表。Debug.Print strTempDebug.Print " EditMode = ";Select Case intEditModeCase adEditNoneDebug.Print "adEditNone"Case adEditInProgressDebug.Print "adEditInProgress"Case adEditAddDebug.Print "adEditAdd"End SelectEnd FunctionAdodc1.Recordset.EditMode这句话是表示Adodc1当前的状态在添加前先判断该数据在数据库中是否存在data.edit表示进入编辑状态。
打开App,查看更多内容
随时随地看视频慕课网APP