报表返回的记录数

WINCC中用listview控件显示用户归档记录,连接数据已成功,通过m = oRs.RecordCount检测到有33个数据,为何在ListView控件中显示的只有一行数据?
部分源程序如下
Dim sPro 
Dim sDsn 
Dim sSer 
Dim sCon 
'Dim sSq1_1
'Dim sSq1_2 
Dim oRs 
Dim conn 
Dim oCom 
Dim oItem 
Dim m, n, s
Dim k
Dim ListView1
Dim ListView2

sCon ="Provider=SQLOLEDB.1;"&_
"Integrated Security=SSPI;"&_
"Persist Security InfO=False;"&_
"Initial CataloG=CC_fortest_10_08_22_10_02_39R;"&_
"Data SourcE=.\WinCC"

Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = sCon
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_1

Set oRs=oCom.Execute

Set ListView1=ScreenItems("ListView1")
ListView1.View =3
ListView1.ListItems.Clear

m = oRs.RecordCount
ScreenItems("静态文本4").Text="查询结果 "  & oRS.RecordCount    & "个。"


ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(0).Name), 30'批次
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 60'批次
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 60'批次
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(3).Name), 30'批次
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(4).Name), 50
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(5).Name), 50

If (m > 0) Then
oRs.MoveFirst

n = 0
Do While Not oRs.EOF

n = n + 1
If (n<1000) Then 

's = Left(CStr(oRs.Fields(1).value), 23)
's = CDate(oRs.Fields(1).value)
'k = DateAdd("h", 8, s)
Set ListView1 = ListView1.ListItems.Add()
MsgBox("4")
ListView1.Text=CStr(oRs.Fields(0).Value)
ListView1.SubItems(1) =CStr(oRs.Fields(1).Value)
ListView1.SubItems(2) =CStr(oRs.Fields(2).Value)
ListView1.SubItems(3) =CStr(oRs.Fields(3).Value)
ListView1.SubItems(4) =CStr(oRs.Fields(4).Value)
ListView1.SubItems(5) =CStr(oRs.Fields(5).Value)

End If
'If (n>1000) Then Exit Do
oRs.MoveNext
Loop
'ScreenItems("静态文本4").Text="查询结果 "  & oRS.RecordCount    & "个。"
MsgBox("d")
oRs.Close
Else
End If
......

最佳答案

给你一个例子:
Private Sub Form_Load()
 '添加 ColumnHeaders。列宽度等于控件宽度
 '除以 ColumnHeader 对象的数目。
 ListView1.ColumnHeaders. _
 Add , , "Author", ListView1.Width / 3)
 ListView1.ColumnHeaders. _
 Add , , "Author ID", ListView1.Width / 3, _
 lvwColumnCenter
 ListView1.ColumnHeaders. _
 Add , , "Birthdate", ListView1.Width / 3)
 
 ' Set View property to Report.
 ListView1.View = lvwReport 


 '为数据访问对象声明对象变量。

Dim myDb As Database, myRs As Recordset
 '设置 Database 为 BIBLIO.MDB 数据库。
 ' IMPORTANT: the Biblio.mdb must be on your
 ' machine, and you must set the correct path to
 ' the file in the OpenDatabase function below.
 Set myDb =  DBEngine.Workspaces(0) _
  .OpenDatabase("c:\Program Files\VB\BIBLIO.MDB")
 '设置 recordset 为 "Authors" 表。
 Set myRs = _
 myDb.OpenRecordset("Authors", dbOpenDynaset)

'声明变量以添加 ListItem 对象。
 Dim itmX As ListItem

 '若当前记录不是最后一条记录,则添加一个 ListItem 对象。
 'ListItem 对象的文本使用 author 字段。
 'ListItem 对象的 SubItem(1) 使用 AuthorID 字段。
 'ListItem 对象的 SubItem(2) 使用 "Year of Birth" 字段。

 While Not myRs.EOF
  Set itmX = ListView1.ListItems. _
  Add(, , CStr(myRs!Author),1) 'Author 字段。

'若 AuthorID 字段不为空,则将 SubItem 1 设置为此字段。
  If Not IsNull(myRs!Au_id) Then
   itmX.SubItems(1) = CStr(myRs!Au_id)   ' Author ID。
  End If

  '若 birth 字段不为空,则将 SubItem 2 设置为此字段。
  If Not IsNull(myRs![Year Born]) Then
   itmX.SubItems(2) = myRs![Year Born]
  End If
  myRs.MoveNext '移动到下一条记录。
 Wend
End Sub

提问者对于答案的评价:
OK

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc267084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • 怎样知道Demo例程里的操作员密码

    我想问问西门子DEMO项目的操作员权限密码在不删除重建的基础上,怎么获得  如果知道的告诉小弟  谢谢了 最佳答案 为什么要知道他的密码,你…

    SIMATIC WinCC 2019年6月11日
  • 桌面西门子授权管理器显示不正确

    西门子授权管理器显示不正确,鼠标放在图标上面显示两行同样的文件名,装WinCC、STEP7时先后装了V1.1和V3.0的两个版本的,能进行授权,STEP7能用,WinCC打开时进入…

    SIMATIC WinCC 2019年6月11日
  • TIA V14下载安装问题

    如下图1,在官网下载的TIA V14 STEP7跟WINCC,下载之后就如图2,下载两次都是这样的,不知道怎么安装,图2第四个文件是我尝试用WinRAR压缩软件…

    2017年6月9日
  • wincc7.4刷新慢,和施耐德PLC通讯

    使用Wincc7.4,变量大概12000个左右,归档变量790个左右,已经购买了65535的变量和1500个归档变量的授权。PLC使用施耐德Quantum PLC,使用M…

    SIMATIC WinCC 2017年6月3日
  • SMART 3AM06(4AI/A2O)没有电流输出

    上位机用的WinCC软件,控制调节变频器的频率,经信号隔离器。上位机无论设定多少,PLC程序监控有对应输出,但万用表实际测试测量数值是3.5mA,无变化。 最佳答案 WINCC读写…

    2021年7月5日
  • 趋势和报警没有了?

    各位专家:我的WINCC正在运行的,昨天趋势、报警显示还没有问题,今天的趋势显示每次就出来一小段,你盯着它看他是在动,可是过一段时间再看还是那么一段。报警就根本不出来了。 最佳答案…

    SIMATIC WinCC 2019年6月11日
  • wincc 建立表格控件的时候出现的问题..急急

    wincc已经通过pc-access可以和PLc通信了。步骤是在pc-access设置变量a,地址为plc上的地址,在wincc上通过建立opc,添加变量a。在变量管理中将变量a归…

    SIMATIC WinCC 2019年6月11日
  • wincc遇到的变量连接问题

    要在wincc6.0中点击一个按钮使输入输出域加1,该怎么办呢? 最佳答案 WinCC全局库->Operation->IncrDecr-Buttons->Incr…

    SIMATIC WinCC 2019年6月10日
  • 我的wincc是7.3版本,为什么用户归档管理的窗口界面没有工具栏?

    如图所示,菜单栏下方没有工具栏,什么原因?请高手指教 最佳答案 是用户归档控件吗?还是用户管理控件双击控件弹出的属性对话框里面有个工具栏选项卡,选项卡里面有个显示工具栏,看看那个方…

    SIMATIC WinCC 2017年6月8日
  • 按钮提示

    点击按钮时,要先提示然后再执行,如我要打开一个电机,第一次点击时,会提示问确实要开启吗,然后再点确定,请问一下如何调用开启电机的变量,该如何操作,最好是使用脚本,谢谢大家! 最佳答…

    SIMATIC WinCC 2019年6月11日