ListView怎么没有办法加关键字?

bokei 2000-07-14 12:55:00
VB6+SP3
我用了一个ListView,用来把recordset里的记录显示在上面,可是当我把recordset里的某个字段的值赋给一个ListItem作为关键字时,他却告诉我是无效的关键字,这个字段是字符串类型的,主键,不会有空值/重复值,怎么回事?
哪段代码如下:

Dim i As Integer '循环计数器
Dim clmTemp As ColumnHeader '要加入的列标头
Dim itmTemp As ListItem '要加入的项目

Dim cmdTemp As New ADODB.Command
cmdTemp.ActiveConnection = conData
cmdTemp.CommandText = strStoreName
cmdTemp.CommandType = adCmdStoredProc

Set rstMarkMan = cmdTemp.Execute

With lvwView
.ListItems.Clear
.ColumnHeaders.Clear


rstMarkMan.MoveFirst
For i = 0 To rstMarkMan.Fields.Count - 1
Set clmTemp = .ColumnHeaders.Add(, , rstMarkMan.Fields(i).Name)
Next i



If rstMarkMan.EOF And rstMarkMan.BOF Then
Exit Sub
End If

Do While Not rstMarkMan.EOF
Set itmTemp = .ListItems.Add(, rstMarkMan.Fields(0).value, rstMarkMan.Fields(0).Value) '出错了
For i = 1 To rstMarkMan.Fields.Count - 1

If Not IsNull(rstMarkMan.Fields(i).Value) Then
itmTemp.SubItems(i) = rstMarkMan.Fields(i).Value
Else
itmTemp.SubItems(i) = ""
End If
Next i
rstMarkMan.MoveNext
Loop
End With

Set cmdTemp = Nothing
Exit Sub
Error:
MsgBox Err.Number & Err.Description

...全文
188 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolyangbo 2000-07-25
  • 打赏
  • 举报
回复
加关键字时需注意不能是数字(包括:"1"这样的“字符型“ 数字)。
estone 2000-07-19
  • 打赏
  • 举报
回复
很简单,只要在后面加任意的字符即可,比如:
dim sFid as string
sFid = rstMarkMan.Fields(0).value
set itmTemp = .listItems.Add(,sFid & "key",sFid)
Un1 2000-07-17
  • 打赏
  • 举报
回复
试一下:
dim s as string
s =rstMarkMan.Fields(0).value

Set itmTemp = .ListItems.Add(, s, s)

另外须确认 s 不为空。
bokei 2000-07-17
  • 打赏
  • 举报
回复
我试过了。
肯定不会是空的。
我在前面加过IsNull来判断了,还是不行啊。
怎么办?
schunter 2000-07-14
  • 打赏
  • 举报
回复
可以确信你的代码没问题,你说的这种问题有一种情况可以出现。那就是,你在同一个工程中同时使用了Microsoft Windows Common Controls 5.0 和 MicroSoft Windows Common Controls 6.0。查一查是否是这种情况。假如是的话,给我加点分吧。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧