给你个例子。 Dim itmX As ListItem 'ListItem 变量。 Dim intCount As Integer '计数器变量。 Dim i As Integer Dim kl As String'Private Sub Command1_Click() 'MsgBox CDate(MaskEdBox1.Text) 'End Sub'Private Sub Command2_Click() 'Dim a As String 'Dim c As String 'Dim d As Date 'd = Date 'a = "02-1-1" ''c = "dd" + CStr(CDate(a)) 'If d < a Then 'MsgBox d 'End If 'End SubPrivate Sub Form_Load() '为 ColumnHeader 对象创建对象变量。 Dim clmX As ColumnHeader '添加 ColumnHeaders。列宽度等于控件宽度 '除以 ColumnHeader 对象的数目。 ListView1.ColumnHeaders.Add , , "Company", ListView1.Width / 3 ListView1.ColumnHeaders.Add , , "Address", ListView1.Width / 3 ListView1.ColumnHeaders.Add , , "Phone", ListView1.Width / 3
End SubPrivate Sub Command1_Click() 'FindItem 方法。 '创建名为 intSelectedOption 的整数类型变量 '来存储选定按钮的索引。 '创建名为 strFindMe 的字符串变量。使用 InputBox '把查找的字符串存储在变量中。使用 ' FindItem 方法查找字符串。使用 Option1 '切换决定在何处查找的 FindItem 参数。 Dim kl1 As String Dim intSelectedOption As Integer Dim strFindMe As String If Option2(0).Value = True Then strFindMe = InputBox("Find in " & Option2(0).Caption) intSelectedOption = lvwText End If If Option2(1).Value = True Then strFindMe = InputBox("Find in " & Option2(1).Caption) intSelectedOption = lvwSubItem End If If Option2(2).Value = True Then strFindMe = InputBox("Find in " & Option2(2).Caption) intSelectedOption = lvwTag End If 'FindItem 方法返回找到的项目的引用,所以 '必须创建对象变量并将 '找到的项目设置给它。 Dim itmFound As ListItem 'FoundItem 变量。 Set itmFound = ListView1.FindItem(strFindMe, intSelectedOption, , lvwPartial) '若未找到符合条件的 ListItem 则通知用户并退出。如果 '找到 ListItem,则使用 EnsureVisible 方法滚动控件, '并选定 ListItem。 kl1 = "kk" If itmFound Is Nothing Then '若没有匹配成功,则通知用户并退出。 MsgBox "No match found" Exit Sub Else itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。 itmFound.Selected = True '选定ListItem。 '将焦点返回给控件以查看选择。 ListView1.SetFocus ListView1.ListItems(kl1).SubItems(1) = "kkkk" 'itmX.SubItems(2) = "lly" End If End SubPrivate Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem) 'MsgBox Item ListView1.FindItem(Item, , , lvwPartial).Selected = TrueEnd SubPrivate Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) MsgBox Item End SubPrivate Sub ListView1_LostFocus() '控件失去焦点后,重新将每个 ' ListItem 的 Selected 属性设置为 False。 ' Dim i As Integer ' For i = 1 To ListView1.ListItems.Count ' ListView1.ListItems.Item(i).Selected = False ' Next i End Sub
Dim intSelectedOption as Integer Dim strFindMe As String If Option1(0).Value = True then strFindMe = InputBox("Find in " & Option1(0).Caption) intSelectedOption = lvwText End If If Option1(1).Value = True then strFindMe = InputBox("Find in " & Option1(1).Caption) intSelectedOption = lvwSubItem End If If Option1(2).Value = True then strFindMe = InputBox("Find in " & Option1(2).Caption) intSelectedOption = lvwTag End If 'FindItem 方法返回找到的项目的引用,所以 '必须创建对象变量并将 '找到的项目设置给它。 Dim itmFound As ListItem 'FoundItem 变量。
Set itmFound = ListView1. _ FindItem(strFindMe, intSelectedOption, , lvwPartial)
'若未找到符合条件的 ListItem 则通知用户并退出。如果 '找到 ListItem,则使用 EnsureVisible 方法滚动控件, '并选定 ListItem。 If itmFound Is Nothing Then '若没有匹配成功,则通知用户并退出。 MsgBox "No match found" Exit Sub Else itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。 itmFound.Selected = True '选定ListItem。 '将焦点返回给控件以查看选择。 ListView1.SetFocus End If End SubPrivate Sub ListView1_LostFocus() '控件失去焦点后,重新将每个 ' ListItem 的 Selected 属性设置为 False。 Dim i As Integer For i = 1 to ListView1.ListItems.Count ListView1.ListItems.Item(i).Selected = False Next i End Sub
首先在数据库中建一个表,用于存放"谢谢你的帮助", 建一新工程,在FROM1中加一个text1 和一个listview1以及一个command1 然后在代码的通用部分定义: dim db as new adodc.connection dim re as new adodc.recordset dim connstr as string dim i,j,sum as integer '*************************** Private Sub Form_Load() '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~] '下面的语句是用VB+SQL SERVER ,ADO 数据存取方式运行 '其中ntserver 为你所登录的服务器 hoteldb 为数据库名 user代表表名 ‘*********************************************** connstr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=hoteldb;Data Source=ntserver;Connect Timeout=30" If db.State = 0 Then db.Open connstr re.CursorLocation = adUseClient re.Open "select 代表谢谢你的帮助的字段 from users order by id", connstr, adOpenDynamic, adLockOptimistic End If listview1.view=lvwreport End Sub Private Sub Command1_Click() dim mylist as listitem static sum as integer '******************************** '写入数据库 if re.recordcount-1<0 thenre.addnew re.feilds("代表谢谢你的帮助的字段").value=trim(text1.text) re.update else re.movefirst re.addnew re.feilds("代表谢谢你的帮助的字段").value=trim(text1.text) re.update re.movenext end if sum=re.recordcount ListView1.ListItems.Clear If re.RecordCount <> 0 Then re.MoveFirst i = 0 For i = 0 To re.RecordCount - 1 ListView1.ListItems.Add(,"key"+i ,trim(re.feilds("代表谢谢你的帮助的字段").value ) re.movenext next i end if listview1.refresh if re.recordcount=sum+1 then msgbox"添加成功",vbCritical + vbInformation, "提示" end if end sub
Dim itmX As ListItem 'ListItem 变量。
Dim intCount As Integer '计数器变量。
Dim i As Integer
Dim kl As String'Private Sub Command1_Click()
'MsgBox CDate(MaskEdBox1.Text)
'End Sub'Private Sub Command2_Click()
'Dim a As String
'Dim c As String
'Dim d As Date
'd = Date
'a = "02-1-1"
''c = "dd" + CStr(CDate(a))
'If d < a Then
'MsgBox d
'End If
'End SubPrivate Sub Form_Load()
'为 ColumnHeader 对象创建对象变量。
Dim clmX As ColumnHeader
'添加 ColumnHeaders。列宽度等于控件宽度
'除以 ColumnHeader 对象的数目。
ListView1.ColumnHeaders.Add , , "Company", ListView1.Width / 3
ListView1.ColumnHeaders.Add , , "Address", ListView1.Width / 3
ListView1.ColumnHeaders.Add , , "Phone", ListView1.Width / 3
ListView1.BorderStyle = ccFixedSingle '设置 BorderStyle 属性。
ListView1.View = lvwReport '设置 View 属性为报表型。
Command1.Caption = "&FindItem" '用 FindItem 选项标注 OptionButton 控件。
Option2(0).Caption = "Text"
Option2(1).Caption = "SubItem"
Option2(2).Caption = "Tag"
'ListView1.FindItem = 0 '设置 ListView 控件的 FindItem 属性为文本。 kl = "kk"
Set itmX = ListView1.ListItems.Add()
intCount = intCount + 1 'Tag 属性计数器递增。
itmX.Key = kl
itmX.Tag = intCount
itmX.Text = "my"
itmX.Tag = "ListItem " & 1 '用计数器值设置 Tag。
itmX.SubItems(1) = "kk" 'Address 字段。
itmX.SubItems(2) = "ll" 'Phone 字段。
Set itmX = ListView1.ListItems.Add()
intCount = intCount + 1 'Tag 属性计数器递增。
itmX.Key = "my1"
itmX.Tag = intCount
itmX.Text = "my1"
itmX.Tag = "ListItem " & 2 '用计数器值设置 Tag。
itmX.SubItems(1) = "kk1" 'Address 字段。
itmX.SubItems(2) = "ll1" 'Phone 字段。
End SubPrivate Sub Command1_Click()
'FindItem 方法。
'创建名为 intSelectedOption 的整数类型变量
'来存储选定按钮的索引。
'创建名为 strFindMe 的字符串变量。使用 InputBox
'把查找的字符串存储在变量中。使用
' FindItem 方法查找字符串。使用 Option1
'切换决定在何处查找的 FindItem 参数。
Dim kl1 As String
Dim intSelectedOption As Integer
Dim strFindMe As String
If Option2(0).Value = True Then
strFindMe = InputBox("Find in " & Option2(0).Caption)
intSelectedOption = lvwText
End If
If Option2(1).Value = True Then
strFindMe = InputBox("Find in " & Option2(1).Caption)
intSelectedOption = lvwSubItem
End If
If Option2(2).Value = True Then
strFindMe = InputBox("Find in " & Option2(2).Caption)
intSelectedOption = lvwTag
End If 'FindItem 方法返回找到的项目的引用,所以
'必须创建对象变量并将
'找到的项目设置给它。
Dim itmFound As ListItem 'FoundItem 变量。 Set itmFound = ListView1.FindItem(strFindMe, intSelectedOption, , lvwPartial) '若未找到符合条件的 ListItem 则通知用户并退出。如果
'找到 ListItem,则使用 EnsureVisible 方法滚动控件,
'并选定 ListItem。
kl1 = "kk"
If itmFound Is Nothing Then '若没有匹配成功,则通知用户并退出。
MsgBox "No match found"
Exit Sub
Else
itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。
itmFound.Selected = True '选定ListItem。
'将焦点返回给控件以查看选择。
ListView1.SetFocus
ListView1.ListItems(kl1).SubItems(1) = "kkkk"
'itmX.SubItems(2) = "lly"
End If
End SubPrivate Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem)
'MsgBox Item
ListView1.FindItem(Item, , , lvwPartial).Selected = TrueEnd SubPrivate Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
MsgBox Item
End SubPrivate Sub ListView1_LostFocus()
'控件失去焦点后,重新将每个
' ListItem 的 Selected 属性设置为 False。
' Dim i As Integer
' For i = 1 To ListView1.ListItems.Count
' ListView1.ListItems.Item(i).Selected = False
' Next i
End Sub
copy msdn的
FindItem 方法示例
本示例将 Biblio.mdb 数据库中 Publishers 表的内容植入 ListView 控件中。同时也将 FindItem 方法的三个选项植入 ComboBox 控件。一个 CommandButton 包含 FindItem 方法的代码;单击按钮后将提示输入欲搜索的字符串,然后使用 FindItem 方法在 ListView 控件中搜索此字符串。如找到字符串则使用 EnsureVisible 方法滚动控件以显示找到的 ListItem 对象。要试用此例,请将 ListView、ComboBox 及 CommandButton 控件放置在窗体上,并将代码粘贴到窗体的声明部分。运行示例并单击命令按钮。注意 必须使用“工具”菜单的“引用”命令添加 Microsoft DAO 3.0 对象库的引用,否则示例无法运行。Private Sub Form_Load()
'为 ColumnHeader 对象创建对象变量。
Dim clmX As ColumnHeader
'添加 ColumnHeaders。列宽度等于控件宽度
'除以 ColumnHeader 对象的数目。
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Company", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Address", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Phone", ListView1.Width / 3)
ListView1.BorderStyle = ccFixedSingle '设置 BorderStyle 属性。
ListView1.View = lvwReport '设置 View 属性为报表型。
Command1.Caption = "&FindItem"
'用 FindItem 选项标注 OptionButton 控件。
Option1(0).Caption = "Text"
Option1(1).Caption = "SubItem"
Option1(2).Caption = "Tag"
ListView1.FindItem = 0 '设置 ListView 控件的 FindItem 属性为文本。
End With
'将数据库记录植入 ListView 控件。
'为数据访问对象创建对象变量。
Dim myDb As Database, myRs As Recordset
'设置数据库为 BIBLIO.MDB 数据库。
Set myDb = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB")
'设置 recordset 为 Publishers 表。
Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)
'若当前记录不是最后一条记录,则添加 ListItem 对象。
'使用新对象的引用设置属性。
'设置 Text 属性为 Name 字段 (myRS!Name)。
'设置 SubItem(1) 为 Address 字段 (myRS!Address)。
'设置 SubItem(7) 为 Phone 字段 (myRS!Telephone)。 While Not myRs.EOF
Dim itmX As ListItem 'ListItem 变量。
Dim intCount As Integer '计数器变量。
'使用 Add 方法添加新的 ListItem 并为新引用设置对象。
'使用引用设置
'属性。
Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
intCount = intCount + 1 'Tag 属性计数器递增。
itmX.Tag = "ListItem " & intCount '用计数器值设置 Tag。 '若 Address 字段不为空,则设置 subitem 1 为此字段。
If Not IsNull(myRs!Address) Then
itmX.SubItems(1) = CStr(myRs!Address) 'Address 字段。
End If
'若 Phone 字段不为空,则设置 subitem 2 为此字段。
If Not IsNull(myRs!Telephone) Then
itmX.SubItems(2) = myRs!Telephone 'Phone 字段。
End If
myRs.MoveNext '移动到下一条记录。
Wend
End SubPrivate Sub Command1_Click()
'FindItem 方法。
'创建名为 intSelectedOption 的整数类型变量
'来存储选定按钮的索引。
'创建名为 strFindMe 的字符串变量。使用 InputBox
'把查找的字符串存储在变量中。使用
' FindItem 方法查找字符串。使用 Option1
'切换决定在何处查找的 FindItem 参数。
Dim intSelectedOption as Integer
Dim strFindMe As String
If Option1(0).Value = True then
strFindMe = InputBox("Find in " & Option1(0).Caption)
intSelectedOption = lvwText
End If
If Option1(1).Value = True then
strFindMe = InputBox("Find in " & Option1(1).Caption)
intSelectedOption = lvwSubItem
End If
If Option1(2).Value = True then
strFindMe = InputBox("Find in " & Option1(2).Caption)
intSelectedOption = lvwTag
End If 'FindItem 方法返回找到的项目的引用,所以
'必须创建对象变量并将
'找到的项目设置给它。
Dim itmFound As ListItem 'FoundItem 变量。
Set itmFound = ListView1. _
FindItem(strFindMe, intSelectedOption, , lvwPartial)
'若未找到符合条件的 ListItem 则通知用户并退出。如果
'找到 ListItem,则使用 EnsureVisible 方法滚动控件,
'并选定 ListItem。
If itmFound Is Nothing Then '若没有匹配成功,则通知用户并退出。
MsgBox "No match found"
Exit Sub
Else
itmFound.EnsureVisible '滚动 ListView 以显示找到的 ListItem。
itmFound.Selected = True '选定ListItem。
'将焦点返回给控件以查看选择。
ListView1.SetFocus
End If
End SubPrivate Sub ListView1_LostFocus()
'控件失去焦点后,重新将每个
' ListItem 的 Selected 属性设置为 False。
Dim i As Integer
For i = 1 to ListView1.ListItems.Count
ListView1.ListItems.Item(i).Selected = False
Next i
End Sub
建一新工程,在FROM1中加一个text1 和一个listview1以及一个command1
然后在代码的通用部分定义:
dim db as new adodc.connection
dim re as new adodc.recordset
dim connstr as string
dim i,j,sum as integer
'***************************
Private Sub Form_Load()
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]
'下面的语句是用VB+SQL SERVER ,ADO 数据存取方式运行
'其中ntserver 为你所登录的服务器 hoteldb 为数据库名 user代表表名
‘***********************************************
connstr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=hoteldb;Data Source=ntserver;Connect Timeout=30"
If db.State = 0 Then
db.Open connstr
re.CursorLocation = adUseClient
re.Open "select 代表谢谢你的帮助的字段 from users order by id", connstr, adOpenDynamic, adLockOptimistic
End If
listview1.view=lvwreport
End Sub
Private Sub Command1_Click()
dim mylist as listitem
static sum as integer
'********************************
'写入数据库
if re.recordcount-1<0 thenre.addnew
re.feilds("代表谢谢你的帮助的字段").value=trim(text1.text)
re.update
else
re.movefirst
re.addnew
re.feilds("代表谢谢你的帮助的字段").value=trim(text1.text)
re.update
re.movenext
end if
sum=re.recordcount
ListView1.ListItems.Clear
If re.RecordCount <> 0 Then
re.MoveFirst
i = 0
For i = 0 To re.RecordCount - 1
ListView1.ListItems.Add(,"key"+i ,trim(re.feilds("代表谢谢你的帮助的字段").value )
re.movenext
next i
end if
listview1.refresh
if re.recordcount=sum+1 then
msgbox"添加成功",vbCritical + vbInformation, "提示"
end if
end sub