老问题,新手问。请教MSHFlexGrid分页。我用的是Access数据库的。请看源码,帮助增加
时间:2011-08-13
来源:互联网
全部只有40分了。望谅解。
以下是全部代码。
VB code
以下是全部代码。
VB code
Option Explicit Private Const c_bh = 0 Private Const c_xm = 1 Private Const c_xb = 2 Private Const c_nl = 3 Private Const c_dh = 4 Private Const c_dz = 5 Private Const c_tu = 6 Private Sub cmdDelete_Click() Dim sql As String MSHFlexGrid1.Col = c_bh If MSHFlexGrid1.Text <> "" Then sql = "delete from 通讯录 where 号码=" & MSHFlexGrid1.Text conn.Execute sql ReadDataToGrid End If End Sub Private Sub Command2_Click() Call ReadDataToGrid '加载数据 End Sub Private Sub Form_Load() connectToDatabase Call ShowOrHideAdmin Call initGrid 'Call ReadDataToGrid End Sub '初始化表格 Private Sub initGrid() Dim formatString As String formatString = "^号码|^姓名|^性别|^年龄|^电话|^地址|<照片" MSHFlexGrid1.formatString = formatString MSHFlexGrid1.ColWidth(c_bh) = 500 MSHFlexGrid1.ColWidth(c_xm) = 1200 MSHFlexGrid1.ColWidth(c_xb) = 1000 MSHFlexGrid1.ColWidth(c_nl) = 500 MSHFlexGrid1.ColWidth(c_dh) = 600 MSHFlexGrid1.ColWidth(c_dz) = 1000 MSHFlexGrid1.ColWidth(c_tu) = 1250 MSHFlexGrid1.rows = 2 'mshflexgrid1.RowHeight(1) = 2000 End Sub '读取数据到表格 Private Sub ReadDataToGrid(Optional sqlWhere As String = "") Dim rst As New ADODB.Recordset Dim sql As String Dim i As Long sql = "select * from 通讯录 where 1=1 " & sqlWhere & " order by 号码" rst.CursorLocation = adUseClient rst.Open sql, conn, adOpenForwardOnly, adLockReadOnly MSHFlexGrid1.rows = 1 MSHFlexGrid1.rows = 2 MSHFlexGrid1.FixedRows = 1 MSHFlexGrid1.Redraw = False If rst.RecordCount > 0 Then MSHFlexGrid1.rows = rst.RecordCount + 1 i = 1 Do Until (rst.EOF Or rst.BOF) MSHFlexGrid1.RowHeight(i) = 400 MSHFlexGrid1.Row = i MSHFlexGrid1.Col = c_bh: MSHFlexGrid1.Text = myTrim(rst.Fields("号码")) MSHFlexGrid1.Col = c_xm: MSHFlexGrid1.Text = myTrim(rst.Fields("姓名")) MSHFlexGrid1.Col = c_xb: MSHFlexGrid1.Text = myTrim(rst.Fields("性别")) MSHFlexGrid1.Col = c_nl: MSHFlexGrid1.Text = myTrim(rst.Fields("年龄")) MSHFlexGrid1.Col = c_dh: MSHFlexGrid1.Text = myTrim(rst.Fields("电话")) MSHFlexGrid1.Col = c_dz: MSHFlexGrid1.Text = myTrim(rst.Fields("地址")) MSHFlexGrid1.Col = c_tu: MSHFlexGrid1.Text = "" Set MSHFlexGrid1.CellPicture = _ LoadPicture("C:\Documents and Settings\Administrator\桌面\C1_Login_Btn.bmp") rst.MoveNext i = i + 1 Loop End If MSHFlexGrid1.Redraw = True rst.Close Set rst = Nothing End Sub Private Function myTrim(ByVal strIn As Variant) As String If IsNull(strIn) Then myTrim = "" Exit Function End If myTrim = Trim(strIn) End Function Private Sub ShowPhoto(rf As ADODB.Field) Dim Chunk() As Byte Const ChunkSize As Integer = 2384 Dim DataFile As Integer, Chunks, Fragment As Integer Dim MediaTemp As String Dim lngOffset, lngTotalSize As Long Dim i As Integer MediaTemp = App.Path & "\picturetemp.tmp" DataFile = 1 Open MediaTemp For Binary Access Write As DataFile lngTotalSize = rf.ActualSize Chunks = lngTotalSize \ ChunkSize Fragment = lngTotalSize Mod ChunkSize ReDim Chunk(Fragment) Chunk() = rf.GetChunk(Fragment) Put DataFile, , Chunk() For i = 1 To Chunks ReDim Chunk(ChunkSize) Chunk() = rf.GetChunk(ChunkSize) Put DataFile, , Chunk() Next i Close DataFile Picture1.Picture = LoadPicture(MediaTemp) Kill MediaTemp End Sub Private Sub mshflexgrid1_Click() Dim rst As New ADODB.Recordset Dim sql As String MSHFlexGrid1.Col = c_bh If MSHFlexGrid1.Text <> "" Then sql = "select * from 通讯录 where 号码=" & MSHFlexGrid1.Text rst.Open sql, conn, adOpenStatic, adLockOptimistic If rst.RecordCount <> 0 Then Text1.Text = (rst.Fields("地址")) If Not IsNull(rst.Fields("照片")) Then ShowPhoto rst.Fields("照片") Else Picture1.Picture = LoadPicture("") End If End If End If End Sub
作者: wanmeikakaxi 发布时间: 2011-08-13
分页采用adodb Recordset的分页功能。
作者: chinaboyzyq 发布时间: 2011-08-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28