用VB连接ACCESS后使用SQL查询,得到记录集rs1,在将rs1的记录输出时,使用了下面的语句.不知为何,只能输出前面两条记录(不管应该匹配的记录条是多少条).是不是我的输出方式有问题呢?
If Not rs1.EOF Then
For i = 0 To rs1.RecordCount
List1.AddItem rs1.Fields.Item("编号")
rs1.MoveNext
Next
Else
List1.AddItem "没有找到您要检索的项,请输入其他检索条件!"
List1.Refresh
End If
If Not rs1.EOF Then
For i = 0 To rs1.RecordCount
List1.AddItem rs1.Fields.Item("编号")
rs1.MoveNext
Next
Else
List1.AddItem "没有找到您要检索的项,请输入其他检索条件!"
List1.Refresh
End If
while not rs.eof
List1.AddItem rs1!编号
rs1.MoveNext
wend
rs.cursorlocation = aduseclient '加上这句应该就没问题了
rs.cursorlocation = aduseclient
这个加上去了也没用,还是原来的结果.
set rs = new adodb.recordset
这个在查询之前就已经建立了,cursorlocation 这个在自动输出里找不到.是一个什么样的属性\事件\方法?
If rs1.recordcount>=0 Then
rs1.movefirst
do while rs1.eof=false
List1.AddItem rs1.Fields.Item("编号")
rs1.MoveNext
Next
Else
List1.AddItem "没有找到您要检索的项,请输入其他检索条件!"
List1.Refresh
End If
For i = 0 To rs1.RecordCount - 1 '如果I从0开始,这里应该减1
List1.AddItem rs1.Fields("编号") '<----偶一般这样写
rs1.MoveNext
Next
Else
List1.AddItem "没有找到您要检索的项,请输入其他检索条件!"
List1.Refresh
End If
这个在查询之前就已经建立了,cursorlocation 这个在自动输出里找不到.是一个什么样的属性\事件\方法?
************************************************************
你是用ADO吗?摘录一段:
CursorLocation 属性 (ADO)
设置或返回游标引擎的位置。设置和返回值设置或返回可设置为以下某个常量的长整型值。常量 说明
adUseNone 没有使用游标服务。(该常量已过时并且只为了向后兼容才出现)。
adUseClient 使用由本地游标库提供的客户端游标。本地游标引擎通常允许使用的
许多功能可能是驱动程序提供的游标无法使用的,因此使用该设置对
于那些将要启用的功能是有好处的。adUseClientBatch 与 adUseClient
同义,也支持向后兼容性。
adUseServer 默认值。使用数据提供者或驱动程序提供的游标。这些游标有时非
常灵活,对于其他用户对数据源所作的更改具有额外的敏感性。但是,
Microsoft Client Cursor Provider(如已断开关联的记录集)
的某些功能无法由服务器端游标模拟,通过该设置将无法使用这些功能。 -----------------------------
你试试:
dim cn as adodb.connection
dim rs as adodb.recordset
dim sql as string
dim i
'连接数据库略......
set rs = new adodb.recordset
rs.cursorlocation = aduseclient
sql="select distinct 编号 from tb "
rs.open sql,cn, adOpenKeyset, adLockOptimistic
if rs.RecordCount = 0 then
List1.AddItem "没有找到您要检索的项,请输入其他检索条件!"
exit sub
end if
For i = 1 To rs1.RecordCount
List1.AddItem rs.Fields("编号")
rs.MoveNext
Next ior:
while not rs.eof
List1.AddItem rs!编号
rs.MoveNext
wendrs.close
cn.close
List1.AddItem rs!编号
rs.MoveNext
wend
=================
先不要添加到list中去,先用循环debub.print rs1.Fields.Item("编号")看有没有数据
既然前面两条记录能输出,一般不会是数据库连接的问题留意一下你的记录里有没有些特别的值,例如某些记录的“编号”字段为空或是不可打印字符之类。。