在excel中使用代码做wincc报表时下面这段代码有2个问题,高手看看问题出在哪里?
1,得到的数据只有AVERAGE, PPOREAL, asymmetry前面3列,后面的数据没有取到,不知道哪里出了问题。
2,我想用数据中的SN值做过滤条件,SN满足要求时,才采集数据到我的报表中,查询语句显然不对,正确的应该是什么?
其它的都已经通过了。
sSql = "Tag:R,('table\AVERAGE;" _
& "table\pporeal;" _
& "table\asymmetry;" _
& "table\TP" _
& "table\SN'),'" & sStart & "' , '" & sStop & "' order by datetime,'where SN.Value = 15029',TimeStep= 10,1"
oCom.CommandText = sSql
Set oRs = oCom.Execute
If (oRs.EOF) Then
oRs.Close
Else
oRs.MoveFirst
i = 0
j = 4
value_old = oRs.Fields("ValueID").Value
Do While Not oRs.EOF
Value_new = oRs.Fields("ValueID").Value
If value_old <> Value_new Then
j = j + 1
i = 0
value_old = Value_new
End If
Sheet1.Cells(i + 4, j) = oRs.Fields("realvalue").Value
get_time = oRs.Fields("Timestamp").Value
Sheet1.Cells(i + 4, 2) = Year(DateAdd("h", 8, CDate(get_time))) & "-" & Month(DateAdd("h", 8, CDate(get_time))) & "-" & Day(DateAdd("h", 8, CDate(get_time)))
Sheet1.Cells(i + 4, 3) = Hour(DateAdd("h", 8, CDate(get_time))) & ":" & Minute(DateAdd("h", 8, CDate(get_time))) & ":" & Second(DateAdd("h", 8, CDate(get_time)))
oRs.MoveNext
i = i + 1
Loop
oRs.Close
End If