如何修改查询得到的记录集中字段值(要修改的字段是数据库原有字段合成的字段,如:(A+B) AS C,要改以的值)?
Public conn As ADODB.Connection
'Function conndb() 连接数据库函数
Public Function conndb() As Boolean
Dim constring As String
Set conn = New ADODB.Connection
conn.CursorLocation = adUseClient
constring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
constring = constring & App.Path & "\1234.mdb;Persist Security Info=False;Jet OLEDB: "
On Error GoTo Errhandle
conn.Open constring
conndb = True
Exit Function
Errhandle:
MsgBox "连接数据库错误,原因是: " & Err.Description, vbCritical, "错误 "
End Function
Private Sub Command1_Click()
Dim i As Long
Dim rsNewData As ADODB.Recordset
Dim strSql As String
Dim x
Call conndb
Set rsNewData = New ADODB.Recordset
rsNewData.CursorLocation = adUseClient
rsNewData.Open "Select (sg+tz) as 身高,tz AS 体重 from [200533013333D2F] ", conn, adOpenStatic, adLockOptimistic
Set rsNewData.ActiveConnection = Nothing
rsNewData.MoveFirst
For i = 0 To rsNewData.RecordCount - 1
rsNewData.Fields( "体重 ") = 888
rsNewData.Fields( "身高 ") = 888
x = DoEvents
rsNewData.MoveNext
Label1.Caption = i
Next
MsgBox "完成 "
End Sub
问题是:现可以修改由原数据库中物理字段AS后的字段,但如多个字段相加后AS的字段或汇总,求和等处理后的在记录集中AS的字段都无法修改,求教,1.能否修改,2.要如何操作.
请先试试后再解解答,求教..............................
[解决办法]
问题不是很明确,我猜测是想修改sg、tz等吧?
我想是不能的,若sg+tz=100,sg、tz各自等于多少?
[解决办法]
[200533013333D2F]
别这样用
用字符串
"Select (sg+tz) as 身高,tz AS 体重 from '+s
[解决办法]
还有这种需求,既然(sg+tz)as 身高 的值由sg 和tz两个字段决定,对其中的一项或两项
进行的修改不都影响到"身高"吗?
[解决办法]
学习
[解决办法]
按照你这种要求 不如把数据集导入到数组变量 然后修改数组变量中的值 使用的时候直接使用数组 而不是数据集
dim datatmp
sNewData.open ... 这句省略
datatmp=sNewData.getrows
然后你就去实时修改datatmp 数组中的数据了
[解决办法]
不能
怎么修改查询得到的记录集中字段值(要修改的字段是数据库原有字段合成的字段,如:(A+B) AS C,要改以的值)
如何修改查询得到的记录集中字段值(要修改的字段是数据库原有字段合成的字段,如:(A+B) AS C,要改以的值)?P
