搬家第25天-citectV7.4vba读取sqlserver数据表输出到msflexgrid控件上

本练习是在sql server2008R2上进行。假设有一个数据库CitectDB,虾米啊有一个数据表Rpt1,有如下数据:

在citect上有一个msflexgrid控件,访问名是main_AN4,在项目管理器的cicode编辑器上写如下citectVBA代码:

Sub SqlTableTomsflexGrid()
Dim conn As Object
Dim strcon As string
Dim ors As Object
Dim ocom As Object
Dim ssql As string
Dim i As Integer
Dim j As Integer
Dim k As Integer
strcon = "Provider = SQLOLEDB.1;password = 3390011;user id = sa;Initial Catalog =CitectDB;Data Source =ES\SQLEXPRESS"
ssql="select curdate,curtime,flow1,flow2,flow3 from Rpt1"
Set conn=CreateObject("ADODB.Connection")
conn.connectionstring=strcon
conn.Cursorlocation=3
conn.open
Set ors=CreateObject("ADODB.RecordSet")
Set ocom=CreateObject("ADODB.Command")
ocom.commandtype=1
Set ocom.ActiveConnection=conn
ocom.CommandText=ssql
Set ors=ocom.Execute
main_AN4.clear
main_AN4.rows=ors.recordcount+1

main_AN4.cols=ors.fields.count+1

'以下代码初始化字段名
main_AN4.row=0
For j= 0 To ors.fields.count-1
   main_AN4.col=j+1
   main_AN4.text=ors.fields(j).name
Next

'以下开始将ors数据逐项写入msflexgrid
ors.movefirst
For i= 1 To ors.recordcount
   main_AN4.row=i
   main_AN4.col=1
   main_AN4.text=cstr(ors.fields(0).value)
   main_AN4.col=2
   main_AN4.text=cstr(ors.fields(1).value)
   main_AN4.col=3
   main_AN4.text=cstr(ors.fields(2).value)
   main_AN4.col=4
   main_AN4.text=cstr(ors.fields(3).value)
   main_AN4.col=5
   main_AN4.text=cstr(ors.fields(4).value)
ors.movenext
Next
Set ors=Nothing
conn.close
Set conn=Nothing
End Sub

 

在citect页面上按钮写脚本:

civba call SqlTableTomsflexGrid()

 

保存编译运行,就能故看到效果了。

posted @ 2021-02-22 12:31  来自金沙江的小鱼  阅读(323)  评论(0编辑  收藏  举报