XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[数据库] 如何让DataGrid控件显示字段值已经发生变化的表

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [数据库] 如何让DataGrid控件显示字段值已经发生变化的表  
 
hl666666
小水手
Rank: 1



UID 1685
精华 0
积分 23
帖子 23
阅读权限 10
注册 2006-1-10
状态 离线
如何让DataGrid控件显示字段值已经发生变化的表

在form1窗体上有一DataGrid1控件、一个Command1控件和一个Adodc1控件,并有如下代码:
Private Sub bdsx() '完成控件的绑定,并刷新相应的信息
    Adodc1.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\考生信息97.mdb"
'    连接数据库中的表或SQL语句-筛选记录
    Adodc1.RecordSource = "Select * from 考生信息 where 类别=1"
'    刷新数据库才使连接数据库生效。
    Adodc1.Refresh
End Sub

Private Sub Command1_Click()
Dim strData As String
Dim strConnect As String
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String

strProvider ="Provider= Microsoft.Jet.OLEDB.4.0;"
'得到应用程序所在的路径
strDataSource = App.Path
strDataBaseName = "\考生信息97.mdb;"
strData = "206062270101"
'得到数据库的完整路径
strDataSource = "Data Source=" & strDataSource & strDataBaseName
strConnect = strProvider & strDataSource
Set connConnection = New ADODB.Connection
connConnection.CursorLocation = adUseClient
connConnection.Open strConnect '打开数据库
Set rsRecordSet = New ADODB.Recordset
rsRecordSet.CursorType = adOpenStatic '设置记录集的属性
rsRecordSet.CursorLocation = adUseClient
rsRecordSet.LockType = adLockPessimistic
rsRecordSet.ActiveConnection = connConnection
rsRecordSet.Open ("SELECT * FROM 考生信息 where 考试号码=" & "'" & strData & "'") '"
connConnection.Execute ("UPDATE 考生信息 SET 类别 = 3 WHERE 考试号码=" & "'" & strData & "'")
Call bdsx
End Sub
其中“考生信息97.mdb”中有表“考生信息”,“考生信息”表中有“考试号码”、“考生姓名”、“类别”等字段。原表中“考试号码”为“206062270101”的考生“类别”为“1”,在DataGrid1控件中能显示该考生记录,当执行Command1_Click事件后,其“类别”值改为“3”,在执行“Call bdsx”语句后,意图使DataGrid1控件不再显示该考生的记录。但实际执行情况并非如此,而是窗体上的显示信息还是原样。
请问在bdsx()过程中怎样实现显示更改后信息的功能?

[ 本帖最后由 hl666666 于 2006-6-26 14:21 编辑 ]
2006-6-26 13:56#1
查看资料  Blog  发短消息  顶部
 
hl666666
小水手
Rank: 1



UID 1685
精华 0
积分 23
帖子 23
阅读权限 10
注册 2006-1-10
状态 离线
补充

刚才试了一下,发现两次单击Command1按钮后,DataGrid1控件就显示更新后的内容了。请指点这是为什么?
2006-6-26 14:24#2
查看资料  Blog  发短消息  顶部
 
hl666666
小水手
Rank: 1



UID 1685
精华 0
积分 23
帖子 23
阅读权限 10
注册 2006-1-10
状态 离线
补充2

刚才在"Call bdsx"后加了另一新过程的调用"call sxdm",其中“sxdm”的代码如下:

Private Sub Sxdm() '表格显示刷新代码
Dim strData As String
Dim strConnect As String
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
strProvider = "Provider= Microsoft.Jet.OLEDB.4.0;"
'得到应用程序所在的路径
strDataSource = App.Path
strDataBaseName = "\考生信息97.mdb;"
'得到数据库的完整路径
strDataSource = "Data Source=" & strDataSource & strDataBaseName
strConnect = strProvider & strDataSource
Set connConnection = New ADODB.Connection
connConnection.CursorLocation = adUseClient
connConnection.Open strConnect '打开数据库
Set rsRecordSet = New ADODB.Recordset
rsRecordSet.CursorType = adOpenStatic '设置记录集的属性
rsRecordSet.CursorLocation = adUseClient
rsRecordSet.LockType = adLockPessimistic
rsRecordSet.ActiveConnection = connConnection
Call bdsx
End Sub

不过,我想总不用这么烦吧,有没有更简单的关键语句?期待朋友指点。
2006-6-26 15:09#3
查看资料  Blog  发短消息  顶部
 
边际徘徊
小水手
Rank: 1



UID 22448
精华 0
积分 2
帖子 2
阅读权限 10
注册 2006-7-21
来自 北京
状态 离线
不妨一试

你可以在窗体上加一个时钟控件,将其时钟间隔设置为10秒或任意的一段时间,不断刷新这个窗体。这样当有数据更新是窗体中的数据列表也应该会有反应的~~~我没试过,因为不知道你这个窗体的意图。个人感觉这个窗体的作用为无
2006-7-21 16:16#4
查看资料  Blog  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-11-21 13:39 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver