注册 登录
编程论坛 VB6论坛

ADO控件绑定MSHFlexGrid时修改数据老是要重新操作才能更新是怎么回事?

DXLAB 发布于 2018-01-27 00:04, 3053 次点击
求救ADO控件绑定MSHFlexGrid时修改数据老是要重新操作才能更新是怎么回事?实际数据中已经更新过来了,但MSHFlexGrid就是没有同步显示,代码如下
Private Sub Command1_Click(Index As Integer)
Dim i As Integer '声明控件组索引变量
Dim strsql As String '声明记录选取行号变量
Dim cmd As New
Select Case Index  '控制组选择条件语句
Case 0             '点击索引为0的[新增]按键
For i = 0 To 8     '循环语句
Text1(i).Text = ""     '清空各文本框
Next i
Label3.Visible = False  '设置标签不显示
Text1(0).SetFocus       '获得焦点
Adodc1.Recordset.AddNew  '新增记录
Case 1            '点击索引为1的[保存]按键

If Label3.Visible = True Then  '判断标签是否显示,若显示则表示为已存在该记录,则执行修改记录语句
mymsg = MsgBox("您确认要修改此记录吗?", 4, "提示信息")  '提示确认信息
If mymsg = vbYes Then
cmd.ActiveConnection = cnn   '设置当前连接
= adCmdText
= "update t_slxx  set 客户名称='" & Trim(Text1(2).Text) & "'  where 申请ID='" & Trim(Label3.Caption) & "'"  '修改符合条件的记录
cmd.Execute
Adodc1.Recordset.Update '这里以下三句不知对不对反正是没有起到效果
Adodc1.Recordset.Requery
Set MSHFlexGrid1.DataSource = Adodc1
MSHFlexGrid1.Refresh
End If
Else
3 回复
#2
xyxcc1772018-01-28 07:41
因为你修改语句直接对数据库中的表进行了修改,对记录集并没有修改。
#3
ZHRXJR2018-01-28 10:38
修改、添加、删除记录后是更新的数据表的记录,但不可能自动更新VB界面的控件数据,因为ADO得到的记录集是没有更新前的记录集,如果要更新,必须刷新该界面。
#4
DXLAB2018-01-29 13:24
我下面有写
Adodc1.Recordset.Update
Adodc1.Recordset.Requery
Set MSHFlexGrid1.DataSource = Adodc1
MSHFlexGrid1.Refresh
End If
Else
对数据库重新连接,并刷新显示控制啊,
1