Access培训
网站公告
·Access专家课堂QQ群号:239158550    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access开发平台

Access快速开发平台--记录用户列序列宽隐藏列_优化打开速度

时 间:2021-07-23 17:22:37
作 者:vincent   ID:20933  城市:广州
摘 要:Access快速开发平台--记录用户列序列宽隐藏列_优化打开速度。
正 文:

      上回发了示例Access快速开发平台--记录每个用户数据表窗体的列宽列序和隐藏列[Access软件网]

http://www.accessoft.com/article-show.asp?id=19935

最近对示例进行了优化处理,分享给大家学习。


附   件:

盟威Access快速开发平台V2.5.1版(32位)_记录用户列序列宽隐藏列_优化


代   码:

Public Function LayoutColumn(Frm As Object) '返出列
    On Error Resume Next
    DoCmd.SetWarnings False
    Dim ctl As Control
    Dim cnn As New ADODB.Connection
    Set cnn = CurrentProject.Connection
    Dim UsName As String
    UsName = GetParameter("Current User Username") '当前用户名
    strSQL = "select [FieldsName],[ColumnHide],[FieldsColumnSN],[ColWidth] from [tblUserFrmSetting] where [UserName]=" & SQLText(UsName) & " and [FrmName]=" & SQLText(Frm.Name) & " order by FieldsColumnSN"
    Set rs = cnn.Execute(strSQL)
    Do Until rs.EOF
        If rs!ColumnHide Then
            Frm("[" & rs!FieldsName & "]").ColumnHidden = True '隐藏用户列
        End If
'        For Each ctl In Frm.Controls
'            If ctl.ControlType = acTextBox Then ' 确保控件为文本框
'                If ctl.Name = rs!FieldsName Then ' 确保控件的名称与字段名称一致
'                    ctl.ColumnOrder = rs!FieldsColumnSN ' 赋值控件的顺序号
'                    ctl.ColumnWidth = rs!ColWidth ' 赋值控件的列宽
'                End If
'            End If
'        Next ctl
        Frm.Controls(rs!FieldsName).ColumnOrder = rs!FieldsColumnSN '如果窗体控件多,里面用for成了2倍太慢了,改为这两句
        Frm.Controls(rs!FieldsName).ColumnWidth = rs!ColWidth

        rs.MoveNext
    Loop
    DoCmd.SetWarnings True
    Set cnn = Nothing
    Set rst = Nothing
    
End Function



Access快速开发平台QQ群 (群号:533704298)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助