接上一篇,查询记录,把结果显示在microsoft hierarchical flexgrid控件上

在前一篇的画面上放置日期时间控件、microsoft hierarchical flexgrid控件、按钮控件。

在此之前,确保这些activex控件是有使用权限的。wincc和citect都遇到过需要权限的问题。可以看我的另外一篇博客

http://blog.sina.com.cn/s/blog_724246b90102zb9k.html

新建一个citectVBA函数

Sub SearchResult()
Dim conn As Object
Dim strcon As string
Dim objrs As Object
Dim objcom As Object
Dim ssql As string
Dim timecond As string
Dim syear,smonth,sday
Dim stryear,strmonth,strday
syear=main_AN20.year
smonth=main_AN20.month
sday=main_AN20.day
If smonth<10 Then
strmonth="0" & cstr(smonth)
Else
strmonth=cstr(smonth)
End If
If sday<10 Then
strday="0" & cstr(sday)
Else
strday=cstr(sday)
End If
stryear=cstr(syear)
timecond=stryear & "-" & strmonth & "-" & strday

ssql="select mytime as 时间,posidescrip as 位置记录 from positionrecord where myTime like '%" & timecond & "%' order by myid desc"
'msgbox ssql
strcon="DSN=myrecord;uid=sa;pwd=sa"
Set conn=createobject("adodb.connection")
conn.connectionstring=strcon
conn.Cursorlocation=3
conn.open
'msgbox "ok"
If conn.state=1 Then
Set objrs=createobject("adodb.recordset")
Set objcom =createobject("adodb.command")
objcom.commandtype=1
Set objcom.activeconnection=conn
objcom.commandtext=ssql
Set objrs=objcom.execute
'msgbox "ok"
'msgbox objrs.recordcount
Set main_AN24.DataSource=objrs
main_AN24.TextMatrix(0,1)="时间"
main_AN24.TextMatrix(0,2)="位置记录"
main_AN24.font.size=14
main_AN24.colwidth(0)=100
main_AN24.colwidth(1)=3500
main_AN24.colwidth(2)=3500

conn.close
End If
Set conn=nothing
End Sub

查询按钮的鼠标点击事件写

civba call SearchResult()

保存编译运行,首先给数据库的表中添加几条记录,然后按日期查询,就能看到结果显示在microsoft hierarchical flexgrid控件上。

需要注意对查询条件日期的格式处理,后面数据集可以直接赋值给控件的datasource属性。

有点奇怪的是同类型的datagrid控件这么处理就不行。

posted @ 2021-03-02 21:49  来自金沙江的小鱼  阅读(242)  评论(0编辑  收藏  举报