注册 登录
编程论坛 VB6论坛

求解“对象 refresh 的方法 iadodc失败”的原因

eedz 发布于 2013-10-20 21:07, 953 次点击
SQL2005   
温度表数据
设备ID             温度      采集时间
01010101    21    2013/10/18 9:58:00
01010102    20    2013/10/18 9:59:00
01010103    20    2013/10/18 10:01:00
01020101    19    2013/10/18 10:02:00
01020102    21    2013/10/18 10:03:00
02500101    20    2013/10/18 10:04:00
02500102    21    2013/10/18 10:05:00
03490101    19    2013/10/18 10:06:00
03490101    22    2013/10/18 10:16:00
01010101    23    2013/10/18 8:39:00
01020102    33    2013/10/18 15:34:00

要求查询出每个设备 最后一次采集的温度 构成的表用datagird显示出来
Private Sub Form_Load()
Dim str1 As String
str1 = " select * from ( select row_number() over( partition by 设备ID order by 采集时间 ) as rows,设备ID,采集时间 from 温度表 )where rows=1 "
Adodc1.RecordSource = str1
Adodc1.Refresh
End Sub

错误提示如题。请问该如何解决。谢谢各位大侠!!
5 回复
#2
lowxiong2013-10-20 22:22
应该是sql语句写错了,from后接的是表名
#3
风吹过b2013-10-21 11:24
他这个是 包含子查询的 SQL ,第一个 Select 的表是另一个查询的结果 ,另一个查询是一个完整的 Select ,必须用园括号引起来,做为一个表被第一个查询的表 。
#4
eedz2013-10-21 12:55
回复 2楼 lowxiong
谢谢你。
“温度表”就是表名。
#5
eedz2013-10-21 12:59
回复 3楼 风吹过b
把where rows=1也放进()里也是同样的错误。
不知道什么问题。很奇怪。
我将datagrid与数据库绑定了 不会是这里的问题吧
#6
lowxiong2013-10-21 13:47
有一个中文字符的括号,检查下。
1