VB读取SQL库中的数据,读不出更新后的数据

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:23:58
SQL数据库中设5列:日期、数量、单价、金额、累计金额
库中附有插入触发器,当输入前三列的数据(日期、数量、单价)时,自动计算出后两列的结果(金额、累计金额)并更新数据库。
已经确认库的设置及触发器没问题,但用下面的代码读取库中数据时,只能读出前三列的数据(日期、数量、单价),后两列的结果(金额、累计金额)读出的是空值。调取库中数据看了,后两列已经更新了呀。
Private Sub CmdSave_Click()
myStr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=日报表原始数据;Data Source=."
myCnn.ConnectionString = myStr
myCnn.Open
myRs.Open "select * from 练习 ", myCnn, adOpenDynamic, adLockOptimistic
myRs.AddNew
myRs("日期") = DTPicker1.Value
myRs("数量") = Val(Text1.Text)
myRs("单价") = Val(Text2.Text)
myRs.Update
MSFlexGrid1.TextMatrix(1, 0) = myRs(0)
MSFlexGrid1.TextMatrix(1, 1) = myRs(1)
MSFlexGrid1.TextMatrix(1, 2) = myRs(2)
MSFlexGrid1.TextMatrix(1, 3) = myRs(3)
MSFlexGrid1.TextMatrix(1, 4) = myRs(4)
myRs.Close
myCnn.Close
MsgBox "该日的报表已成功地存入数据库", , "提示"
End Sub
个人认为

你的意思是MSFlexGrid显示的内容没有更新是吗?
断开MSFlexGrid的数据源重新连接试试

在myRs.Update之后用myRs.Resync()刷新myRs对象中的数据。
Recordset在插入时,不能自动获取由触发器以及字段默认值产生的数据

用myRs.Resync()刷新myRs对象中的数据