|
楼主 |
发表于 2010-5-10 14:58
|
显示全部楼层
原帖由 zhang5156 于 2010-5-10 14:32 发表
作品很好,提个建议,请改进一下再上传,就是添加记录后不能自动清屏,如能给添加记录设置一个快捷键就更好了。
终于看到提建议的了,谢谢楼上
添加记录后有个刷新ListView1数据语句:
If 模糊查询.Text = "" Then Call 显示数据(SQL) Else 模糊查询.Text = "" '刷新ListView1数据
就是说只要添加成功会刷新ListView1数据的,不过没有设定排序功能,添加记录后新记录在数据库的最下方
有点漏洞,就是新增加或修改了工作部门,没有及时的更新ComboBox1.list,使得“工作部门”查询不会及时出现新的工作部门,这个在第3个附件中已经修改:
把Private Sub UserForm_Initialize()下面的两句:
' arr = cnn.Execute("select distinct " & rs.Fields(i - 1).Name & " from [数据库$] where " & rs.Fields(i - 1).Name & " is not null ").GetRows '不重复的工作部门,为了修改字段名后不受影响使用了rs.Fields(i - 1).Name来代替“工作部门”
' ComboBox1.List = WorksheetFunction.Transpose(arr) '不重复的工作部门赋值给组合框
放到了Public Sub 显示数据(strsql As String)中去就可以了:
Public Sub 显示数据(strsql As String) '为ListView1设置各行数据
Dim i&, j&
On Error Resume Next
Set rs = New ADODB.Recordset
rs.Open strsql, cnn, adOpenKeyset, adLockOptimistic
With ListView1
.ListItems.Clear
For i = 1 To rs.RecordCount
.ListItems.Add , , rs.Fields(0).Value
For j = 1 To rs.Fields.Count - 1
.ListItems(i).SubItems(j) = rs.Fields(j).Value
Next j
rs.MoveNext
Next i
End With
rs.MoveFirst
arr = cnn.Execute("select distinct " & rs.Fields(j - 1).Name & " from [数据库$] where " & rs.Fields(j - 1).Name & " is not null ").GetRows '不重复的工作部门,为了修改字段名后不受影响使用了rs.Fields(i - 1).Name来代替“工作部门”
ComboBox1.List = WorksheetFunction.Transpose(arr) '不重复的工作部门赋值给组合框
Label2.Caption = "共找到 " & ListView1.ListItems.Count & " 条记录"
End Sub
电话簿管理系统(以本工作簿工作表为数据库).rar
(31.13 KB, 下载次数: 624)
|
|