WINCC 读取SQL当日数据 vbs文本报错

已锁定

星空366

西门子1847工业学习平台

  • 帖子

    18
  • 精华

    0
  • 被关注

    24

论坛等级:游士

注册时间:2016-07-12

黄金 黄金 如何晋级?

WINCC 读取SQL当日数据 vbs文本报错

676

4

2024-05-23 08:46:42


本人 小白 刚开始学习WINCC  跟着网上视频学习 代码如下 执行到红字后不能继续执行  只有注释掉后方可正常运行,求大佬帮忙分析下 哪里问题,谢谢


Sub OnOpen()     

 

 

Dim kj1,kj2,kj3,kj4,kj5,kj6

Dim QR

Dim MSFlexGrid1   '对应表格控件名称

Dim LocalBeginTime, LocalEndTime,riqi

Dim oRs,oRs1,n,n1,i,z,s1,s11,oCom,oCom1,strcn,conn,pj

Dim zxy1

'查询当天全部数据,除了控件名称要注意修改外,以上其他为标准

Set MSFlexGrid1 = ScreenItems("AA") '对应表格控件名称

 

riqi = Now

 

LocalBeginTime = Year(riqi) & "-" & Month(riqi) & "-" & Day(riqi) & "" & "00:00:00"

LocalEndTime = Year(riqi) & "-" & Month(riqi) & "-" & Day(riqi) & "" & "23:59:59"

 

s1 = "SELECT DT,Name,B1,B2,B3,B4,B5 FROM biao WHERE DT BETWEEN '" & LocalBeginTime & "' And '" & LocalEndTime & "'ORDER BY DT"

's1后面的内容要对应数据库中列的内容,后面的DT与前面的DT要名称一致,enen要对应数据库列表名称dbo的名称

strcn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist SecurityInfo=False;Initial Catalog=test2;Data Source=BXDPC\WINCC"

 

Set conn = CreateObject("ADODB.Connection")

 

conn.ConnectionString = strcn

 

conn.CursorLocation = 3

 

conn.Open

's1 = "SELECT DT,name,a,b,c,d,e FROM en WHERE DT BETWEEN '" & LocalBeginTime & "' And '" & LocalEndTime & "'ORDER BY DT"

'Set oRs = CreateObject("ADODB.Recordset")

Set oRs = CreateObject("ADODB.Recordset")

Set oCom = CreateObject("ADODB.Command")

 

oCom.CommandType = 1

Set oCom.ActiveConnection = conn

oCom.CommandText = s1   '执行检索功能

Set oRs = oCom.Execute

'n = oRs.RecordCount  '获得检索到的总数

 

'HMIRuntime.Tags("I3").Write n

 

 

MSFlexGrid1.Clear

'MSFlexGrid1.Rows = oRs.RecordCount + 2

MSFlexGrid1.ColWidth(0) = 1500

MSFlexGrid1.ColWidth(1) = 2000

MSFlexGrid1.ColWidth(2) = 1500

MSFlexGrid1.ColWidth(3) = 1500

MSFlexGrid1.ColWidth(4) = 1500

MSFlexGrid1.ColWidth(5) = 1500

MSFlexGrid1.ColWidth(6) = 1500

MSFlexGrid1.ColWidth(7) = 1500

 

MSFlexGrid1.RowHeight(0) = 1200

MSFlexGrid1.RowHeight(1) = 600

 

MSFlexGrid1.Row = 0

For z = 0 To 7

  MSFlexGrid1.CellFontSize = 12

  MSFlexGrid1.Col = z

  MSFlexGrid1.Text = "工况信息表"

  Next 

  MSFlexGrid1.MergeCells = 4

  MSFlexGrid1.MergeRow(0) = True

  

  MSFlexGrid1.Row = 1

  

 For z = 0 To 7

 MSFlexGrid1.Col = z

  

 MSFlexGrid1.CellBackColor = vbCyan

 Next

  MSFlexGrid1.TextMatrix(1,0) = "序号"

  MSFlexGrid1.TextMatrix(1,1) = "日期"

  MSFlexGrid1.TextMatrix(1,2) = "名称"

  MSFlexGrid1.TextMatrix(1,3) = "重量(kg)"

  MSFlexGrid1.TextMatrix(1,4) = "高度(mm)"

  MSFlexGrid1.TextMatrix(1,5) = "流量"

  MSFlexGrid1.TextMatrix(1,6) = "压力"

  MSFlexGrid1.TextMatrix(1,7 )= "温度"

  

  

   MSFlexGrid1.ColAlignment(0) = 4

   MSFlexGrid1.ColAlignment(1) = 4

   MSFlexGrid1.ColAlignment(2) = 4

   MSFlexGrid1.ColAlignment(3) = 4

   MSFlexGrid1.ColAlignment(4) = 4

   MSFlexGrid1.ColAlignment(5) = 4

   MSFlexGrid1.ColAlignment(6) = 4

   MSFlexGrid1.ColAlignment(7) = 4

   

   If (n > 0)Then 

   

        oRs.MoveFirst

        i = 0

        Do While Not oRs.EOF

        n = n + 1

        

        MSFlexGrid1.TextMatrix(i+2,0) = i

        MSFlexGrid1.TextMatrix(i+2,1) = oRs.Fields(0).Value

        MSFlexGrid1.TextMatrix(i+2,2) = oRs.Fields(1).Value

        MSFlexGrid1.TextMatrix(i+2,3) = oRs.Fields(2).Value

        MSFlexGrid1.TextMatrix(i+2,4) = oRs.Fields(3).Value

        MSFlexGrid1.TextMatrix(i+2,5) = oRs.Fields(4).Value

        MSFlexGrid1.TextMatrix(i+2,6) = oRs.Fields(5).Value

        MSFlexGrid1.TextMatrix(i+2,7) = oRs.Fields(6).Value

 

        

        i = i + 1

        oRs.MoveNext

        Loop

        conn.Close

            MSFlexGrid1.TopRow = MSFlexGrid1.Rows - 1

        Else

         MsgBox "您所查询的时段没有数据......"

        oRs.Requery

        conn.Close

        End If

        



End Sub


WINCC 读取SQL当日数据 vbs文本报错 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32575条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。