登录
首页 人机界面 人机界面
回帖 发帖
正文

主题:关于wincc连接ACCESS数据库查询问题

点击:1194 回复:2

大家好:
     我有问题紧急求助,希望各位大神帮帮忙~~~
     我现在用做毕设,用wincc做物料监控,需要用RFID采集物料信息。RFID采集的信息存储到数据库中,Wincc再从数据库中调用。我之前已经实现了这个功能,但是不知道为什么中间写论文隔了几天没碰软件,功能就出不来了。
    现在可以确定的是,数据库已经连接上了,接下来就是查询的问题。我现在想实现的是,将输入输出域1连接一个变量假如说是标签ID,通过手动输入标签ID,从数据库中查询相同的ID所对应的物料信息。
    程序如下:
Dim ID1_1
Set ID1_1 = HMIRuntime.Tags("ID1_1")
ID1_1.Read
rsTable.MoveFirst
Do  While  rsTable.EOF=False
“循环判断”
If  rsTable.Fields(0).Value=ID1_1.Value Then
cplx1_1.Write rsTable.Fields(1).Value
workplace1_1.Write rsTable.Fields(2).Value
work.Write rsTable.Fields(3).Value
storage.Write rsTable.Fields(4).Value
“如果ID号相同,则输入ID对应的物料信息”
Exit Do
Else
  rsTable.MoveNext
   End If
Loop
按理来说,当我输入1001时,只要数据库中有1001 就会有输出。输出的变量已经和各个I/O域连接好了。
Wincc好像不认可  rsTable.Fields(0).Value=ID1_1.Value 这句 ,因为我用rsTable.Fields(0).Value=1001 这句就能实现。
是不是没有这种表达,可是我之前就是这么写的能实现的。
大家看看能不能找出毛病~~~
谢谢~~~谢谢~~~
11-05-31 17:57
那你就要看你的fiels(0)字段的变量属性,是字符型还是数值型,ID1_1.value你做相应的转换看看。另外我觉得你这么查询虽然方法可行,对应数据量少可以,但总不如使用sql方便好用,sql语句查询一句就行了。
11-06-01 08:55
谢谢,我已经解决这个问题了, 问题在 rsTable.Fields(0).value=ID1_1.value,我把它变成  rsTable.Fields(0).value-ID1_1.value=0 就可以了。
11-06-06 09:40

工控新闻

更多新闻资讯