回复:用WINCC读写数据库

yangzaichun05

  • 帖子

    9
  • 精华

    0
  • 被关注

    0

论坛等级:新手

注册时间:2009-10-07

普通 普通 如何晋级?

发布于 2010-08-21 19:46:23

1楼

可以用VBS写代码,读写Access小型数据库,非常方便:


Dim strConstring
Dim strSQL
Dim objConnection
Dim objCommand
Dim rs_ri,rs_yue
Dim s1,s2,s3,s4,s5
Dim sumL01,sumL02,sumLsg,i
Dim zjL01,zjL02,zjLsg

strConstring = "Provider = MSDASQL;DSN=ksps_ri_yue_bb;UID=;PWD="

Dim yue_bb_nianfen
Set yue_bb_nianfen = HMIRuntime.Tags("yue_bb_nianfen")
yue_bb_nianfen.Read

Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConstring
objConnection.open

Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConNection =objConnection
objCommand.CommandType = 1

Set rs_ri = CreateObject("ADODB.Recordset")
Set rs_yue = CreateObject("ADODB.Recordset")

zjL01 = 0
zjL02 = 0
zjLsg = 0

For i = 1 To 12 Step 1
s1 = "select * from ksps_ri_leiji where r_time like '"
s2 = GetMyMonth(yue_bb_nianfen.value,i)
s3 = "%'"
strSQL = s1 & s2 & s3
objCommand.CommandText = strSQL
rs_ri.Open objCommand

sumL01 = 0
sumL02 = 0
sumLsg = 0

Do While Not rs_ri.eof
sumL01 = sumL01 + rs_ri("guanlu01")
sumL02 = sumL02 + rs_ri("guanlu02")
sumLsg = sumLsg + rs_ri("digou")
rs_ri.movenext
Loop
rs_ri.Close

zjL01 = zjL01 + sumL01
zjL02 = zjL02 + sumL02
zjLsg = zjLsg + sumLsg

s1 = "select * from ksps_yue_leiji where r_time ='"
s3 = "'"

strSQL = s1 & s2 & s3
objCommand.CommandText = strSQL
rs_yue.Open objCommand,,1,3

If rs_yue.eof Then
rs_yue.addnew
End If
rs_yue("r_time") = s2
rs_yue("guanlu01") = FormatNumber(sumL01,2)
rs_yue("guanlu02") = FormatNumber(sumL02,2)
rs_yue("digou") = FormatNumber(sumLsg,2)
rs_yue("guanlu") = FormatNumber(sumL01 + sumL02,2)
rs_yue.update
rs_yue.Close

Next

s1 = "select * from ksps_yue_leiji where r_time ='"
s2 = GetMyMonth(yue_bb_nianfen.value,13)
s3 = "'"

strSQL = s1 & s2 & s3
objCommand.CommandText = strSQL
rs_yue.Open objCommand,,1,3

If rs_yue.eof Then
rs_yue.addnew
End If
rs_yue("r_time") = s2
rs_yue("guanlu01") = FormatNumber(zjL01,2)
rs_yue("guanlu02") = FormatNumber(zjL02,2)
rs_yue("digou") = FormatNumber(zjLsg,2)
rs_yue("guanlu") = FormatNumber(zjL01 + zjL02,2)
rs_yue.update
rs_yue.Close

objConnection.Close
Set objConnection = Nothing
Set objCommand = Nothing
Set rs_ri = Nothing
Set rs_yue = Nothing
杨在春
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32563条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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