DataGrid单元格编辑

想试着做下用DataGrid显示sql数据库表格内容和编辑数据库表格值的程序

Sub OnClick(ByVal Item)                                      
On Error Resume Next
 Dim DSN
 Dim strConn
 Dim conn
 Dim oCom
 Dim oRs
 Dim sSql
 
 Dim DataGrid
 Set DataGrid = ScreenItems("DataGrid1")

' ===================连接数据库==================
 strConn = "Provider=MSDASQL;DSN=test;UID=sa;PWD=xx;" 
 Set conn = CreateObject("ADODB.Connection")   
  conn.ConnectionString = strConn   
 conn.CursorLocation = 3
 conn.Open  
  
 Set oRs = CreateObject("ADODB.Recordset")
 Set oCom = CreateObject("ADODB.Command")
 oCom.CommandType = 1
 Set oCom.ActiveConnection = conn
        sSql = "SELECT  autoid,a,b,c FROM test order by  autoid desc"        
  oCom.CommandText = sSql
 Set oRs = oCom.Execute  

 Set DataGrid.DataSource = oRs 
' AutoGenerateColumns=True 
 DataGrid.Refresh
 DataGrid.AllowAddNew=True
 DataGrid.AllowDelete=True
 DataGrid.AllowUpdate=True
 DataGrid.AllowArrows=True


' oRs.close 
' Set oRs = Nothing
' Set oCom = Nothing 
' conn.close
' Set conn = Nothing 

End Sub

问题1:为什么加上关闭数据连接这段,数据库里的内容就显示不出了,去掉以后就能显示了?那数据库还需要关闭吗?什么时候关闭呢?
' oRs.close 
' Set oRs = Nothing
' Set oCom = Nothing 
' conn.close
' Set conn = Nothing 

问题2:我想编辑修改删除等datagrid表格中某单元格的值,但是选中某单元格后,键盘修改不了值啊?那怎么进行事件触发呢?要设置什么属性吗?


麻烦各位高手指教了~如果有相关实例那就再好不过了~先谢过

最佳答案

问题1:
手头没有测试环境,建议在画面添加全局脚本诊断工具,看看有无故障发生。
问题2:
可以在Datagrid的双击事件中定义相应的脚本
1)获取双击的单元格的行号和列号
2)弹出Inputbox
3)将Inputbox的数据写入相应的单元格

提问者对于答案的评价:
谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月3日 上午1:29
下一篇 2017年8月3日 上午1:29

相关推荐

  • WINCC报警问题1111111

    1、如图我想用确认变量来实现确认报警。无论怎么改变确认变量的值,都不能确认。还只能点报警控件的“确认”。怎么回事? 问题补充:开关量,16位无符号,都试了,0 &nbsp…

    2017年6月3日
  • MP 277 启动时白屏

    我的MP277屏近期老出现一个问题,就是在上电启动时就停在白屏阶段没反应了,关电重新上电又OK了,近期经常 出现这种情况,请问是为什么,屏坏了吗? 最佳答案 好象这里之前…

    SIMATIC WinCC 2019年6月11日
  • wincc 界面按钮

    界面按钮A怎么做?当权限m=1,点击按键A(阀门形状),出对话框,开阀 关阀两个按钮;点击开阀→按键A绿色闪烁(代表开阀中)→收到开到位信号,按键A绿色常亮; …

    2021年7月5日
  • 高分求助wincc画面显示问题

    做一个项目,原先wincc画面上的变频器速度值是百分比显示,采集的是DB100.DBD104,(该变频器是西门子变频器,是通过通讯连接)现在换了一台国产变频器,也不能通过通讯连接,…

    SIMATIC WinCC 2017年8月3日
  • 关于wincc中定义全局变量的问题

    用wincc做一个用户控制的界面,之前在VB中做过相同的功能,我想问下VB里设置的全局变量在wincc中应该在哪里定义,是一个一个设置内部变量吗,还是说在全局脚本里定义 最佳答案 …

    SIMATIC WinCC 2020年11月1日
  • WinCC flexible 中有些有画面的按钮显示XX 怎样办

    如图片所示,这些显示 XX 的按钮 我去那找到图片?,项目库显示一个小叉acen_05_212.  这个怎样解决? 问题补充:我想…

    2017年11月1日
  • wincc 画面上显示时间 日期

    wincc画面上想显示实时时间和日期,但是加载了winncc的时间日期控件后,运行有乱码。请问是什么情况?自己在Tag Management/SYSTEM IN…

    SIMATIC WinCC 2019年6月11日
  • wincc flexible 2008无法使用

    安装了wincc flexible 2008,以前用挺正常的,突然有一天,打开wincc flexible 2008后,只有标题栏,没有菜单…

    SIMATIC WinCC 2019年6月10日
  • 对象自动横向循环移动

    希望大侠们能提供相关的脚本代码! 补充:对象能够自动变颜色。 问题补充:要移动的是字符串 最佳答案 在需要移动的对象属性里面,位置X,动态对话框,表达式选一内部变量(例如…

    SIMATIC WinCC 2019年6月11日
  • wincc十六位有符号数如何显示负数的问题?

    我在plc里面定义了一个count:int类型变量,在wincc里面定义了count(16位有符号数)与之对应,然后使用输入/输出域与这个变量对应起来,但在显示过程中,该变量如果为…

    SIMATIC WinCC 2017年11月12日