中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

电脑编程

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 电脑编程 → 浏览主题: 请教思南如何用VB中使用Acess2000实现实时警报显示?
发表新帖 回复该主题
回帖:4个,阅读:2660 [上一页] [1] [下一页]
* 帖子主题:

请教思南如何用VB中使用Acess2000实现实时警报显示?

分享到
1472
Lin1010
文章数:205
年度积分:50
历史总积分:1472
注册时间:2003/10/22
发站内信
发表于:2003/12/10 10:55:00
#0楼
我现在用VB对ACESS数据库进行ADO操作,我在ACESS中建有一个警报信息表和实时警报表,当警报位触发后,VB在警报信息表中查询到信息,写入到实时警报表(DbGrid+DAOData控件显示)。当该位正常时,根据警报号在表中删除掉信息。但是我现在发现,虽然我在表删除,而且对DBGrid执行了Requery,但是DbGrid的信息还是没有删除。关掉程序后再运行就发现DbGrid的信息没有了。

还有为了执行对DBGrid中的数据进行操作,却不能使用FIND。

下面是两个ALARM过程,现在我已没什么办法,请思南先生及各位大侠给点经验和处理警报的思路。

Private Sub AlarmAdd(Number As Integer)

  Dim mrc As ADODB.Recordset
    txtsql = "select * from alarm where number='" & Trim(Number) & "'"
     Set mrc = ExecuteSQL(txtsql)
     If mrc.EOF = False Then
      Exit Sub
     Else
      txtsql = "select chitext from alarmlist where number='" & Trim(Number) & "'"
      Set mrc = ExecuteSQL(txtsql)
       Adodc1.Recordset.AddNew
       Adodc1.Recordset.Fields(0) = Trim(Number)
       Adodc1.Recordset.Fields(1) = Now()
       Adodc1.Recordset.Fields(2) = mrc.Fields(0)
       Adodc1.Recordset.Update
     End If

End Sub
Private Sub AlarmCanel(Number As Integer)

 Dim str As String
If Number > 9998 Then
     Exit Sub
       ElseIf Adodc1.Recordset.EOF And Adodc1.Recordset.BOF Then
        Exit Sub
          Else
          Dim mrc As ADODB.Recordset‘以下本可以用ADODB.Recordset.find number 来找出错的错误记录,但程序出错。
            txtsql = "select * from alarm where number='" & Trim(Number) & "'"
            Set mrc = ExecuteSQL(txtsql)
             If mrc.EOF = False Then
              mrc.Delete
              mrc.Update
           Adodc1.Recordset.Requery
           Adodc1.Recordset.Update
           End If
       End If
End Sub
表情表情表情
29654
思南 管理员
文章数:14053
年度积分:43
历史总积分:29654
注册时间:2001/3/12
发站内信
发表于:2003/12/10 12:13:00
#1楼
很久没有VB编写数据库程序了。刚刚在电脑上测试一下,应该这样可以通过:
关于Del:
   Adodc1.Recordset.MoveFirst
   Adodc1.Recordset.Find ("Number='" & Trim(Number) & "'")  'Number 为字符字段,否则不要单引号
   Adodc1.Recordset.Delete
查找与删除通过,不需要其他语句。
另外,你使用的应该是ADO Data Control.我的测试环境是VB6,ADODC参数是默认值。
你用Find出错可能与ADODC中的参数有关,或者你的Number字段是数字型   而你在Find时使用了单引号(字符型)匹配错。
图
如您对论坛有好的建议或创想,请加大版主微信号:gkong2015
大版主推荐【工控百家谈】微信公众号,业界大拿原创内容分享
1472
Lin1010
文章数:205
年度积分:50
历史总积分:1472
注册时间:2003/10/22
发站内信
发表于:2003/12/10 15:37:00
#2楼
非常感谢!我正在用VB写一个设备操作程序,但是以前是用组态软件的,由于对VB的应用不熟练,周围又没有同行,所以只有自已做。看看网上对VB与工控方面的知识非常少。非常想请思南及版主介绍一些VB在工控中的系统用法,如警报信息的处理,历史记录,参数趋势图,那就太好了。
29654
思南 管理员
文章数:14053
年度积分:43
历史总积分:29654
注册时间:2001/3/12
发站内信
发表于:2003/12/11 15:21:00
#3楼
事实上并没有什么特殊性,关键是将信号如何输入到电脑,然后放到数据库中去。后期的统计处理,报表以及图形等,可以参考一些专门VB编程的网站,难点不多。
相对来说,实时的显示图表(例如波形、仪表等)则可能是难点之一,不过有现成的控件则会使工作量大大降低,并且效果更加专业。
给一个专门做仪表控件的给做参考http://www.gkong.com/comm/userdetail.asp?id=29750

祝你成功!
图
如您对论坛有好的建议或创想,请加大版主微信号:gkong2015
大版主推荐【工控百家谈】微信公众号,业界大拿原创内容分享
1472
Lin1010
文章数:205
年度积分:50
历史总积分:1472
注册时间:2003/10/22
发站内信
发表于:2003/12/11 17:49:00
#4楼
谢谢鼓励!

工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003