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与单片机的通信

    我想将wincc中的数据通过串口发送到一个单片机上用于显示。应该如何做? 最佳答案 你非要这样做也无可厚非,可以在wincc脚本中编程通讯。论坛有很多人有过这种想法。(这样相当于绕…

    SIMATIC WinCC 2019年6月11日
  • 通讯驱动选择

    S7-300PLC(CPU315-2DP),带两个智能变频器作从站,控制网络用PROFIBUS-DP,上位机监控,那么WINCC中添加驱动程序时是选Simatic S7&…

    SIMATIC WinCC 2019年6月11日
  • WINCC项目改了名称就不能运行了?

    我把一个可以正常运行的WINCC项目改了名称,结果就不能运行了。请问原因何在? 最佳答案 在拷贝程序的时候WINCC是否在运行中?如果这样的话,可能会导致有些文件正在使用而无法拷贝…

    SIMATIC WinCC 2019年6月11日
  • wincc webux 新建证书错误

    启动wincc webux configurator点击应用组态-新建证书后,提示错误:CertEnroll::CX509PrivateKey::put_Pro…

    SIMATIC WinCC 2021年7月5日
  • WINCC的脚本语言

    WINCC的VBS和ANSI-C的作用就是制作动画吗?还有其它功能吗?我看在动画的制作中不是WINCC本身就能在动态中做吗?为什么还用脚本语言?   …

    SIMATIC WinCC 2019年6月11日
  • Wincc提示high system loads

    我想使一个控件位置动态移动编了个脚本,贮存时系统有一个警示“Cyclic action cause high system loa…

    SIMATIC WinCC 2019年6月11日
  • WinCC V6.2 sp2授权问题

    WinCC V6.2 sp2安装正版授权后,当天还是好用的,第二天出现授权没有,显示演示模式,不知是何原因?请教各位大侠 图片说明:    …

    2021年7月5日
  • 怎么将当前的计算机名和用户名付给变量啊?

    请问用c或者vb或者其他办法,怎么样可以将当前的计算机名和wincc登陆用户名提取出来付给变量啊? 最佳答案 读取内部变量@CurrentUser和@LocalMachineNam…

    SIMATIC WinCC 2019年6月11日
  • wincc 报警记录控件中日期、时间、持续时间字符数无法设置

    在wincc 7.3画面编辑器中插入报警记录控件,结果发现日期、时间消息块显示的太窄(见附件1),在消息块字符数设置列均为灰化背景(见附件2),请问如何调整? 图片说明:…

    2017年6月6日
  • 怎样用C动作设置颜色

    求教:怎样用C动作 实现动态修改界面的背景颜色,或者是修改某个控件的背景颜色?以及其他的一些颜色?请举例说明 问题补充:我知道是用设置背景颜色的内部函数设定。但是不知道颜…

    SIMATIC WinCC 2019年6月11日