正文

VB6+ADO+ListView数据库分页显示2005-09-25 08:04:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/5274.html

分享到:

VB6+ADO+ListView数据库分页显示                  作者:unknown 更新时间: 2005-05-02                                                Dim link1 As New ADODB.Connection                           Dim rs As New ADODB.Recordset                           Dim page As Integer                           Dim pubdatapath As String                           Sub opendatabase(datapath As String) '打开数据库函数                           page = 1 '首次定义打开时的页码为1                           If link1.State = 1 Then '如果以连接过,则关闭,初始化下次事务                           link1.Close: list2.ListItems.Clear:                         list2.ColumnHeaders.Clear: c.Clear:                         list1.ListItems.Clear                           End If                           link1.ConnectionString =                         "Provider=microsoft.jet.oledb.4.0;data source=" &                         datapath                           link1.Open                           pubdatapath = datapath                           Set biaoming = link1.OpenSchema(adSchemaColumns)                         '创建数据库记录集                           tablename = ""                           Do Until biaoming.EOF                           If biaoming("table_name") <> tablename Then '列出所有表                           tablename = biaoming("table_name")                           list1.ListItems.Add , , tablename                           End If                           biaoming.MoveNext                           Loop                           Set biaoming = Nothing                           menu1.Enabled = True                           list1_MouseUp 1, 0, 10, 10                           End Sub                           Private Sub Command1_Click() '打开数据库                           d.DialogTitle = "打开一个数据库文件进行浏览"                           d.InitDir = App.Path                           d.FileName = ""                           d.Filter = "Access数据库(mdb后缀,推荐格式) *.mdb"                           d.ShowOpen                           If d.FileName = "" Then Exit Sub                           opendatabase d.FileName                           End Sub                                                      Private Sub Command4_Click()                           str1 = InputBox("请输入一个1-5000之间的数字", "重设", Text1.Text)                           If str1 = Text1.Text Or str1 = "" Then Exit Sub                           If IsNumeric(str1) = False Then Exit Sub                           If str1 > 5000 Or str1 < 1 Then Exit Sub                           Text1.Text = str1                           If list1.ListItems.Count = 0 Then Exit Sub Else                         list1_MouseUp 1, 0, 10, 10                           End Sub                             Private Sub down_Click() '功能,下一页                           page = page + 1: list1_MouseUp 1, 0, 10, 10                           End Sub                             Private Sub findstr_Click() '查询数据                           If InStr(Text2.Text, "'") <> 0 Then MsgBox                         "查询时关键字不允许包含 ' 符号", vbCritical, "无效字符": Exit Sub                           If rs.State = 1 Then rs.Close                           rs.Open "select " & c.Text & " from " &                         list1.SelectedItem.Text & " where " & c.Text & " like                         '%" & Text2.Text & "%'", link1, adOpenStatic,                         adLockReadOnly                           If rs.EOF Then MsgBox "没有符号条件的记录,请从新查找", vbCritical,                         "未发现记录": Exit Sub                           Do While Not rs.EOF                           i = i + 1                           str1 = str1 & i & " : " & rs(0) & vbCrLf                           rs.MoveNext                           Loop                           MsgBox str1, vbExclamation, "查询结果 - " & rs.RecordCount                         & "匹配"                           End Sub                                                        Private Sub Form_Resize()                           list1.ColumnHeaders(1).Width = list1.Width - 80                           list2.Width = Me.ScaleWidth - list2.Left - 30                           list1.Height = Me.ScaleHeight - list1.Top - 30                           list2.Height = Me.ScaleHeight - (Me.ScaleHeight -                         down.Top) - 150                           End Sub                           Private Sub Form_Unload(Cancel As Integer)                           If rs.State = 1 Then rs.Close                           If link1.State = 1 Then link1.Close                           Set rs = Nothing: Set link1 = Nothing                           End Sub                             Private Sub list1_MouseUp(Button As Integer, Shift As                         Integer, x As Single, y As Single) '切换表                           On Error Resume Next                           If list1.ListItems.Count = 0 Then Exit Sub                           If rs.State = 1 Then rs.Close                           list2.ListItems.Clear: list2.ColumnHeaders.Clear:                         c.Clear                           rs.Open "select * from " & list1.SelectedItem.Text,                         link1, adOpenStatic, adLockReadOnly                           If Err.Number <> 0 Then                           MsgBox "该数据表不能支持的游标模式", vbCritical, "不规则的格式": Exit Sub                           End If                           rs.PageSize = Text1.Text                           rslen = rs.RecordCount                           If rs.PageCount < page Then page = 1                           Label3.Caption = "共" & rslen & "条记录,共" & rs.PageCount                         & "页,当前页码 " & page                           If rs.PageCount > page Then down.Enabled = True Else                         down.Enabled = False                           If page <> 1 Then up.Enabled = True Else up.Enabled =                         False                           Set ziduan = rs.Fields '定义字段记录集                           For i = 0 To ziduan.Count - 1                           list2.ColumnHeaders.Add , , ziduan(i).Name '根据字段指定视图列                           c.AddItem ziduan(i).Name                           rs.MoveFirst '记录到尾后填充下一列                           rs.AbsolutePage = page '定义记录集的绝对页码                           For r = 0 To rs.PageSize - 1                           If rs.EOF Then Exit For                           rstext = rs(i)                           If i = 0 Then '首次直接填充第一列                           list2.ListItems.Add , , rstext                           Else '非首次填充下一下                           If rstext <> Empty Then list2.ListItems(r +                         1).ListSubItems.Add , , rstext Else list2.ListItems(r +                         1).ListSubItems.Add , , ""                           End If                           rs.MoveNext                           Next                           Next                           If c.ListCount <> 0 Then c.ListIndex = 0:                         findstr.Enabled = True Else findstr.Enabled = False                           Set ziduan = Nothing                           End Sub                             Private Sub menu01_Click(Index As Integer)                           Select Case Index                           Case 1: '建新表演示                           str1 = 1                           For i = 1 To list1.ListItems.Count                           If InStr(list1.ListItems(i).Text, "新建表") = 1 Then str1                         = str1 + 1                           Next                           link1.Execute "create table 新建表" & str1 & "(会员名                         Text,密码 Varchar(8),年龄 int not null,经验值 " & _                           "integer,加入日期 DateTime null)"                           link1.Execute "insert into 新建表" & str1 &                         "(会员名,密码,年龄,经验值,加入日期) values ('风云舞','12345678'" & _                           ",18,365,'" & Now & "')"                           link1.Execute "insert into 新建表" & str1 &                         "(会员名,密码,年龄,经验值,加入日期) values ('Lshdic','87654321'" & _                           ",18,365,'" & Now & "')"                           opendatabase pubdatapath '刷新重装载列表                           Case 2: '刷新——重装载                           opendatabase pubdatapath                           Case 3: '删除                           If rs.State = 1 Then rs.Close                           link1.Execute "Drop table " & list1.SelectedItem.Text                           opendatabase pubdatapath                           Case 4: '表属性                           If rs.State = 1 Then rs.Close                           rs.Open "select * from " & list1.SelectedItem.Text,                         link1, adOpenStatic, adLockReadOnly                           For i = 0 To rs.Fields.Count - 1                           str1 = str1 & rs.Fields(i).Name & ","                           str2 = str2 & rs.Fields(i).Type & ","                           str3 = str3 & rs.Fields(i).ActualSize & ","                           str4 = str4 & rs.Fields(i).DefinedSize & ","                           Next                           MsgBox "包含字段:" & str1 & vbCrLf & vbCrLf & "字段类型:" &                         str2 & vbCrLf & vbCrLf & "第一行数据大小:" & _                           str3 & vbCrLf & vbCrLf & "每行数据预设容量:" & str4,                         vbExclamation, "表属性"                           End Select                           End Sub                             Private Sub Text2_GotFocus()                           If Text2.Text = "查找关键字..." Then Text2.Text = ""                           End Sub                             Private Sub Text2_LostFocus()                           If Text2.Text = "" Then Text2.Text = "查找关键字..."                           End Sub                             Private Sub up_Click() '功能,上一页                           page = page - 1: list1_MouseUp 1, 0, 10, 10                           End Sub

阅读(3391) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册