怎么刷新窗体表中的数据,使之永远显示数据库表中的最新数据!
当前在【会议主体】窗体中 有sqltable表,在窗体加载后事件代码中 对数据进行加载。
DataTables("会议主体_table1").AddUserStyle("会议开始", Color.pink, Color.black)
DataTables("会议主体_table1").AddUserStyle("会议结束", Color.PaleGreen, Color.black)
DataTables("会议主体_table1").AddUserStyle("等待会议", Color.White, Color.black)
Dim cmd As New S QLC ommand
cmd.Co nn ectio nNa me = "无纸化会议"
Dim dt As DataTable
cmd.Co mm an dText = "SE LeCT * F r o m 系统议题 where 主题uuid='" & vars("会议主题uuid") &"'"
dt = cmd.ExecuteReader()
Tables("会议主体_table1").DataSource =dt
Tables("会议主体_table1")中的drawcell代码如下:
If e.Row("开始状态") =True And e.Row("结束状态") =False Then
e.Style = "会议开始"
Else If e.Row("开始状态") =True And e.Row("结束状态") =True Then
e.Style = "会议结束"
Else
e.Style = "等待会议"
End If
当管理者对会议主体窗体中的sqltable表数据进行开始或结束的操作后,会对应更改开始状态=true 结束状态=true
在计划管理中创建有 刷新会议议题 任务 2秒执行一次
刷新会议议题代码如下:
If Forms("会议主体").opened Then
With Tables("会议主体_table1")
Dim r As Integer
r = .FindRow("开始状态= true and 结束状态=false ") '从第一行开始查找
If r >= 0 Then '如果找到的话
.Position = r '定位到找到的行.
End If
End With
End If
在会议主体窗体启动后 就会MyTimers("同步会议议题").Enabled = True 执行计划任务
上述代码及运行结果在本地单项目运行的时候没有问题,数据可以及时刷新显示并定位到符合条件的行。
在局域网内的话,打开多个同样的项目,主项目操作了开始状态=true后 且结束状态=false时 其他项目都没有实现与主项目操作的一样效果,自动定位到当前数据开始状态为true结束状态为false的数据行。
有没有办法及时也刷新Tables("会议主体_table1")数据,且不闪,数据无缝显示到符合条件的行
同时原有的drawcell代码又要能够正常运行
[此贴子已经被作者于2022/5/11 12:28:33编辑过]