用VB脚本做全局子程序打开数据库

用VB脚本做全局子程序打开数据库打开数据库
 后不关,本项目任何窗体任何地方不需在建立数据库连接和打开数据库,只需要根据需要打开数据表,进行数据查询,最后在程序结束时再调子程序关闭数据库.
 Public cn
 Set cn=CreateObject("ADODB.connection")
 Sub nection()
 cn.open"Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=gjh;Initial Catalog=CC_dhny_08_06_23_13_04_14;Data Source=xnc\WINCC"
 End Sub
 Sub closedata()
 cn.close
 Set cn=Nothing
 End Sub
 奇怪不能实现全局?!!!

问题补充:
上面这段程序我是建在VB全局脚本项目模块内的
 动全局脚本已启动,不是这个原因,TIC 谢谢你的回答但不是这个原因

最佳答案

Public的作用域是有限的,仅限于本画面,切换画面后就失效了。另外打开一个连接所花费的时间要远比执行SQL语句要短,没有必要做成所谓的全局。如果非要这么做,可以在画面的Open Picture中进行初始化,然后本画面的VBS就可以不声明而直接使用它了。

 
 补充:我用DataSet测试了一下,可以实现全局。在起始画面Open Picture中初始化。
  Sub OnOpen()
    Dim conn,rs  
    Set conn = CreateObject("ADODB.Connection")
    conn.open "Test"
    Set rs=CreateObject("ADODB.Recordset")
    HMIRuntime.DataSet.Add "conn",conn
    HMIRuntime.DataSet.Add "rs",rs
  End Sub
 在任意画面都可以使用已经打开和创建conn及rs
 Dim conn,rs,strSQL
 Set conn=HMIRuntime.DataSet("conn").Value 
 Set rs=HMIRuntime.DataSet("rs").Value 
 strSQL="SELECT * FROM USERNAME"
 rs.open strSQL,conn,1,1
 rs.MoveFirst
 MsgBox rs("Username")
 rs.Close

提问者对于答案的评价:
谢谢!我已收到你的邮件,又多学了的东西

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276925.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 下午12:47
下一篇 2019年6月11日 下午12:47

相关推荐

  • 提示A9PRC760授权没有安装或不完整,怎么回事?

    提示A9PRC760授权没有安装或不完整,怎么回事? 专家建议 具体是什么版本的软件,授权管理器中可以查看到什么授权?可以看诊断文件夹中与授权相关的诊断文件。是不是用到需要额外购买…

    SIMATIC WinCC 2020年11月1日
  • C动作脚本求解

    这是一个输出输入域中的一个C动作,动作内容为将系统参数6读取出来,或者将新值赋给系统参数6。内部变量中可找到UNIT;但不能找到“.SYS_PARA6”,请注意“.SYS_PARA…

    SIMATIC WinCC 2019年6月11日
  • 流量显示置零

    我在WINCC画面里坐了个流量累积的现实,流量累积的程序是在step7里做的,我现在想把wincc里显示的流量累积在某个时间置零,请问该如何做?谢谢! 最佳答案 这个也在step7…

    SIMATIC WinCC 2019年6月11日
  • OS怎么起不来 muti–user

    一个wincc server,5个OS,使用muti-user的模式 ,可是有一个OS启动时只有启动画面的白色部分 没有显示的语言等,用户权限没有问题…

    SIMATIC WinCC 2018年12月5日
  • Wincc V6.0 SP2报错0x8004610a

    前辈们好,目前需要参照以前的系统做界面,以前用的是wincc6.0,我在虚拟机中下载sql server和wincc后怎样也无法打开,参照网上解决办法:1.拷贝项目时出错…

    2021年7月5日
  • smart 700 IEV3 触屏与电脑无法联接

    我的电脑在下载触屏程序时用网线无法与屏联接 钻石用户推荐最佳答案 链接参考Smart屏下载/回传:http://www.ad.siemens.com.cn/service/arti…

    SIMATIC WinCC 2020年11月1日
  • wincc 的VBA

    如何在启动wincc’是运行一段vba的代码,万分感谢!! 最佳答案 请楼主研究一下这个链接,看是否能帮到你,VB与WINCC启动关闭:http://wenku.baidu.com…

    SIMATIC WinCC 2017年7月26日
  • wincc上怎么写下一个数字并一直记录在上面

    比如说我要写上一个可以修改的数值作为参考值,每次开机都能够看到显示这个数值。谢谢了 问题补充:只是简单的写到页面上去,不做读取变量用,只是作为参考值,就像把屏幕当成记事本,用数字键…

    2021年7月5日
  • WINCC的趋势保存时间怎么设置?

    WINCC的趋势保存时间怎么设置?我的WINCC的趋势保存时间才9天,怎么修改这个时间? 最佳答案 打开变量归档编辑器,找到归档组态→慢速归档或快速归档,在上面右击鼠标,在弹出菜单…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4的复制问题

    大家好,目前遇到个问题,wincc7.4做的项目,通过wincc的复制器复制项目,再打开的时候项目里的用户管理等无法修改,请问是什么问题?删除项目文件下的.LCK等文件的做法都已经…

    SIMATIC WinCC 2021年7月5日