citect2018 使用microsoft datagrid控件显示数据库记录

前面练习过在citect中,使用mshflexgrid控件显示符合条件的记录。用着倒是方便,但是发现一个问题:有的计算机上citect2018无法使用mshflexgrid控件,总是说权限不够。实在使用microsoft datagrid来显示,也可以用,把方法记录在下面。还是和前一个事件记录查询练习类似,这里把查询结果显示出来。

新建citectVBA函数

Sub MSDatagridShowData()
Dim conn As Object
Dim strcon As string
Dim newrs 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"
strcon="DSN=myrecord;uid=sa;pwd=sa"
Set conn=createobject("adodb.connection")
conn.connectionstring=strcon
conn.Cursorlocation=3
conn.open
If conn.state=1 Then
Set newrs=createobject("adodb.recordset")
newrs.CursorLocation = 3
newrs.open ssql,conn,3,2
Set main_AN23.DataSource=newrs
main_AN23.refresh
End If
End Sub

保存。在画面上的按钮事件写

civba call MSDatagridShowData()

 

保存编译,选择日期后点击按钮,就可以查询出结果了。

 

仔细看一下,microft datagrid控件需要refresh,而且不能断开连接,一断开就会失去数据。

下一篇我会试着断开连接,把数据填写进去。

posted @ 2021-03-08 11:26  来自金沙江的小鱼  阅读(424)  评论(0)    收藏  举报