搬家第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()
保存编译运行,就能故看到效果了。


浙公网安备 33010602011771号