rsCnn = "PROVIDER=Microsoft.Jet.OLEDB.4.0Data Source=" &DataPath &"mode=Read|write"
rsTmp.Open "Select * From 时刻段电量 ", rsCnn, adOpenDynamic, adLockBatchOptimistic
With rsTmp
!峰数据 = rsTmp1.Fields(strName(k) &"峰").Value
!平数据 = rsTmp1.Fields(strName(k) &"平").Value
!谷数据 = rsTmp1.Fields(strName(k) &"谷").Value
!总数据 = !峰数据 + !平数据 + !谷数据
.UpdateBatch
End With
Set rsTmp = Nothing
VB的Update 方法有多种用途:
Update 方法 (ADO),保存对 Recordset 对象的当前记录所做的所有更改。
语法
recordset.Update Fields, Values
参数
Fields 可选。变体型,代表单个名称;或变体型数组,代表需要修改的字段(单个或多个)名称或序号位置。
Values 可选。变体型,代表单个值;或变体型数组,代表新记录中字段(单个或多个)值。
说明
使用 Update 方法保存自从调用 AddNew
方法,或自从现有记录的任何字段值发生更改之后,对 Recordset 对象的当前记录所作的所有更改。Recordset
对象必须支持更新。
Update 和 CancelUpdate 方法范例
该范例连同 CancelUpdate 方法说明 Update 方法。
Public Sub UpdateX()
Dim rstEmployees As ADODB.RecordsetDim strOldFirst As String
Dim strOldLast As String
Dim strMessage As String
' 使用雇员表中的姓名打开记录集。
strCnn = "Provider=sqloledb" &_
"Data Source=srvInitial Catalog=pubsUser Id=saPassword="
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "SELECT fname, lname " &_
"FROM Employee ORDER BY lname", strCnn, , , adCmdText
' 储存原始数据。
strOldFirst = rstEmployees!fname
strOldLast = rstEmployees!lname
' 更改编辑缓冲区中的数据。
rstEmployees!fname = "Linda"
rstEmployees!lname = "Kobara"
' 显示缓冲区的内容并获取用户输入。
strMessage = "Edit in progress:" &vbCr &_
" Original data = " &strOldFirst &" " &_
strOldLast &vbCr &" Data in buffer = " &_
rstEmployees!fname &" " &rstEmployees!lname &vbCr &vbCr &_
"Use Update to replace the original data with " &_
"the buffered data in the Recordset?"
If MsgBox(strMessage, vbYesNo) = vbYes Then
rstEmployees.Update
Else
rstEmployees.CancelUpdate
End If
' 显示结果数据。
MsgBox "Data in recordset = " &rstEmployees!fname &" " &_
rstEmployees!lname
' 恢复原始数据,因为这只是演示。
If Not (strOldFirst = rstEmployees!fname And _
strOldLast = rstEmployees!lname) Then
rstEmployees!fname = strOldFirst
rstEmployees!lname = strOldLast
rstEmployees.Update
End If
rstEmployees.Close
End Sub
Public Sub UpdateX2()
Dim cnn1 As ADODB.Connection
Dim rstEmployees As ADODB.Recordset
Dim strEmpID As String
Dim strOldFirst As String
Dim strOldLast As String
Dim strMessage As String
' 打开连接。
Set cnn1 = New ADODB.Connection
strCnn = "Provider=sqloledb" &_
"Data Source=srvInitial Catalog=pubsUser Id=saPassword="
cnn1.Open strCnn
' 使用雇员表中的数据打开记录集。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "employee", cnn1, , , adCmdTable
rstEmployees.AddNew
strEmpID = "B-S55555M"
rstEmployees!emp_id = strEmpID
rstEmployees!fname = "Bill"
rstEmployees!lname = "Sornsin"
' 显示缓冲区内容并获取用户输入。
strMessage = "AddNew in progress:" &vbCr &_
"Data in buffer = " &rstEmployees!emp_id &", " &_
rstEmployees!fname &" " &rstEmployees!lname &vbCr &vbCr &_
"Use Update to save buffer to recordset?"
If MsgBox(strMessage, vbYesNoCancel) = vbYes Then
rstEmployees.Update
' 转到新记录并显示结果数据。
MsgBox "Data in recordset = " &rstEmployees!emp_id &", " &_
rstEmployees!fname &" " &rstEmployees!lname
Else
rstEmployees.CancelUpdate
MsgBox "No new record added."
End If
' 删除新数据,因为这只是演示。
cnn1.Execute "DELETE FROM employee WHERE emp_id = '" &strEmpID &"'"
rstEmployees.Close
End Sub
Update 方法(远程数据),将复制缓冲区行的内容保存到一个指定的可更新的
rdoResultset 对象中,并废弃复制缓冲区。
语法
object.Update
object 所在处代表对象表达式,其值为“应用于”列表中的一个对象。
AddNew、Update、CancelUpdate 方法示例
下面的示例用以说明使用 AddNew
方法在基本表中添加一个新行。该例假定有权对这个表进行读写访问,所提供的列数据符合与该表相关的规则及其它的约束条件,并且该表有唯一的索引。用于 *** 作的数据值从窗体的三个
TextBox 控件中获得。注意这个表的唯一的关键字不在这儿提供,而自动提供的是—一个标识列。
Option Explicit
Dim er As rdoError
Dim cn As New rdoConnection
Dim qy As New rdoQuery
Dim rs As rdoResultset
Dim col As rdoColumn
Private Sub AddNewJob_Click()
On Error GoTo ANEH
With rs
.AddNew
!job_desc = JobDescription
!min_lvl = MinLevel
!max_lvl = MaxLevel
.Update
End With
Exit Sub
UpdateFailed:
MsgBox "Update did not suceed."
rs.CancelUpdate
Exit Sub
A
NEH:
Debug.Print Err, Error
For Each er In rdoErrors
Debug.Print er
Next
Resume UpdateFailed
End Sub
Private Sub Form_Load()
cn.CursorDriver = rdUseOdbc
cn.Connect = "uid=pwd=server=sequel" _
&"driver={SQL Server}database=pubsdsn=''"
cn.EstablishConnection
With qy
.Name = "JobsQuery"
.SQL = "Select * from Jobs"
.RowsetSize = 1
Set .ActiveConnection = cn
Set rs = .OpenResultset(rdOpenKeyset, _
rdConcurRowver)
Debug.Print rs.Updatable
End With
Exit Sub
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)