用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

相关推荐

  • 操作员站怎么组态

    wincc中操作员站怎么组态呢?操作员站上只安装了运行版WINCC的情况下! 最佳答案 1、计算机科学中的定义:转帖:中文名称:操作员站英文名称:operator sta…

    SIMATIC WinCC 2019年6月11日
  • WINCC V7.4SP1正版的安装

    安装时提示系统不能让不能安装在WIN7旗舰版的系统上,必须装在WIN7 SP1,WIN8.1的版本上。  7.4SP1版本在WIN7旗舰版就装不了吗?…

    2021年7月5日
  • 把博图变量导入WINCC中

    我就想问西门子WINCC的开发者是不是有病,都是西门子的为什么不能把博图变量导入WINCC中? 最佳答案 莫生气其实可以的WinCC从TIA Portal离线加载符号变量…

    SIMATIC WinCC 2020年11月1日
  • wincc web发布,用模拟plc仿真,在本机服务器浏览器使用正常,在客户机显示DataMonitor

    我用WebNavigator在网页上显示的系统运行画面,用模拟plc仿真,在本机服务器浏览器使用正常,在客户机不正常!显示DataMonitor ,也无法下载DataMo…

    2017年6月10日
  • 在STEP7中插入OS站有什么用?

    以前用过将Wincc作为OS站集成到STEP7中,方便打开项目。后来发现Wincc中有OS编辑器,开始觉得OS站集成到STEP7中不是单单的打开项目方便。想问问Step7中插入OS…

    SIMATIC WinCC 2021年7月5日
  • wincc还是和plc不能通讯

    安装wincc的机子上装有cp5611板卡,wincc使用cp5611通讯卡通过MPI连接plc时,当诊断MPI网络时,点击测试会出现以下错误; 错误 0x03…

    SIMATIC WinCC 2019年6月11日
  • Wincc不能从主画面开始运行

    Wincc Flexible 2008组态出了几组画面,为什么在线运行的时候不能从主画面开始,总是从画面2开始,(主画面的画面编号已经设置为1了),求助各位大神…

    SIMATIC WinCC 2021年7月5日
  • 谁给写个c动作

    wincc全局数据库c动作,想写一个动作,一个变量大于一个值后,延时5秒钟,让一个二进制变量动作,试了两次,总是编译不过去,求助。 问题补充:最好给我写一个,变量a大于50后,延时…

    2020年11月1日
  • Wincc 7.5 SP1dtpicker控件

    请教大家Wincc dtpicker控件需要单独安装吗?我在软件里没有找到,如果能提供安装及使用方法就太好了,本人Wincc新手一枚,研究一下午没搞明白。 钻石用户推荐最…

    SIMATIC WinCC 2021年7月5日
  • wincc画面中设置登录按钮和退出按钮

    我想在画面上点登录,弹出登录对话框,输入用户名、密码后,在画面上显示用户名,并使登录按钮消失,点退出按钮后又恢复初始画面。 最佳答案 在“登录按钮”的属性里的动作下鼠标动作加入相应…

    SIMATIC WinCC 2019年6月11日