在计划管理建一个计划,执行间隔为5秒(即5000毫秒),代码为:
Dim flt As String
Dim drs As List(Of DataRow)
flt = "接收者 = '" & _UserName & "' Or 接收者 = '" & _UserGroup & "' And 接收时间 Is Null"
drs = DataTables("网内通讯").AppendLoad(flt, False)
If drs.Count > 0 Then
Dim btn As RibbonMenu.Button '点击网络短信按钮
btn = RibbonTabs("系统菜单").Groups("用户").Items("网络短信")
btn.PerformClick()
End If
当收到新信息时,能够执行点击网络短信按钮的代码,切换到网内通讯表,但是老是跳出错误提示,不知问题出在哪里请各位老师指教,谢谢!!
此主题相关图片如下:h.png

下面是网络短信按钮的代码,可以单独正常操作。
'菜单网络短信按钮代码
Forms("网络短信").Show()
MainTable = Tables("网内通讯")
Dim yhm As String = "" & _UserName
Dim hm As String
If yhm <> "开发"
hm = "a"
Else
hm = "b"
End If
Dim Filter As String
Select Case hm
Case "a"
Filter = "接收者 = '" & _UserName & "' Or 接收者 = '" & _UserGroup & "' Or 发送者 = '" & _UserName & "'"
Case Else
Filter = "" '其他用户记载所有行
End Select
DataTables("网内通讯").LoadFilter = Filter
DataTables("网内通讯").Load()
Dim drs As List(of DataRow) = DataTables("网内通讯").Select("接收者 = '" & _UserName & "' Or 接收者 = '" & _UserGroup & "' And 接收时间 Is Null")
Dim cmb As New SQLCommand
Dim dd As Date
cmb.C '外部数据源
cmb.CommandText = "Select GetDate()" '服务器时间
dd = cmb.ExecuteScalar()
If drs.Count > 0 Then
For Each dr As DataRow In drs
dr("接收时间") = dd
Next
DataTables("网内通讯").Save()
End If
Tables("网内通讯").Sort = "发送时间"
Tables("网内通讯").AutoSizeCols()
Tables("网内通讯").Cols("信息内容").Width= 300
Dim n As Integer = Tables("网内通讯").Rows.Count
If n > 500 Then
With DataTables("网内通讯")
.StopRedraw
For i As Integer = 1 To 100
DataTables("网内通讯").DataRows(0).Delete()
Next
.ResumeRedraw
End With
DataTables("网内通讯").Save()
End If
With Tables("网内通讯")
.Position = .Rows.Count - 1
End With
Tables("网内通讯").Cols("信息内容").OpenWindow()
[此贴子已经被作者于2012-6-26 15:58:24编辑过]