|
zhy12346 发表于 2014-9-4 09:17
大侠,好像不行哦,我想要一个listview列表的呢。希望能帮我在解决一下!万分感谢!
试试看- Private Sub CommandButton2_Click()
- Call listItems_ListView
- End Sub
- Private Sub ListView1_DblClick()
- UserForm1.Show
- End Sub
- Private Sub UserForm_Initialize()
-
- Dim wd As Single
- Call addItem("班级")
- wd = ListView1.Width / 6
- ListView1.listItems.Clear
- ListView1.ColumnHeaders.Clear
- ListView1.ColumnHeaders.Add , , "年龄", wd
- ListView1.ColumnHeaders.Add , , "姓名", wd
- ListView1.ColumnHeaders.Add , , "班级", wd
- ListView1.ColumnHeaders.Add , , "语文", wd
- ListView1.ColumnHeaders.Add , , "数学", wd
- ListView1.ColumnHeaders.Add , , "英语", wd
- ListView1.View = lvwReport
- ListView1.FullRowSelect = True
- ListView1.Gridlines = True
-
- End Sub
- Sub addItem(str As String)
-
- On Error Resume Next
-
- Dim i As Integer
- Dim cnn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- Dim ffp As String
-
- ComboBox1.Clear
- ComboBox1.TextColumn = 1
- ffp = ThisWorkbook.path + "\数据库.accdb"
- cnn.Open "provider=microsoft.jet.oledb.4.0;data source=" & ffp
- SQL = "select distinct " + str + " from 数据"
- rs.Open SQL, cnn, adOpenStatic
- rs.MoveLast
- rs.MoveFirst
- For i = 1 To rs.RecordCount
- ComboBox1.addItem rs.Fields(str)
- rs.MoveNext
- Next i
- rs.Close
- cnn.Close
- Set rs = Nothing
- Set cnn = Nothing
-
- End Sub
- Sub listItems_ListView()
- On Error Resume Next
-
- Dim cnn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- Dim ffp, SQL As String
-
- ListView1.listItems.Clear
- ffp = ThisWorkbook.path + "\数据库.accdb"
- If Dir(ffp) <> "" Then
- cnn.Open "provider=Microsoft.jet.OLEDB.4.0;data source=" & ffp
- SQL = "select * from 数据 where 班级='" + ComboBox1.Value + "'"
- rs.Open SQL, cnn, adOpenStatic
-
- For i = 1 To rs.RecordCount
- Set addItm = ListView1.listItems.Add()
- addItm.Text = rs.Fields("姓名")
- addItm.SubItems(1) = rs.Fields("年龄")
- addItm.SubItems(2) = rs.Fields("班级")
- addItm.SubItems(3) = rs.Fields("语文")
- addItm.SubItems(4) = rs.Fields("数学")
- addItm.SubItems(5) = rs.Fields("英语")
- rs.MoveNext
- Next
- rs.Close
-
- SQL = "select sum(语文) as Chinese,sum(数学) as Math,sum(英语) as Eng from 数据 where 班级='" + ComboBox1.Value + "'"
- rs.Open SQL, cnn, adOpenStatic
- Set addItm = ListView1.listItems.Add()
- addItm.Text = "合计"
- addItm.SubItems(3) = rs.Fields("Chinese")
- addItm.SubItems(4) = rs.Fields("Math")
- addItm.SubItems(5) = rs.Fields("Eng")
- rs.Close
- cnn.Close
- Set rs = Nothing
- Set cnn = Nothing
- Else
- MsgBox "数据文档不存在!"
- End If
- End Sub
复制代码 |
|