Access快速开发平台--通用附件附加折叠扩展显示功能实例
时 间:2022-04-04 08:01:25
作 者:张旭军 ID:72228 城市:杭州
摘 要:ACCESS附件附加折叠扩展显示功能实例。
正 文:
盟威Access快速开发平台非常实用,我们需要更多普及使用方法。本文适合初学者学习。
附件占用的显示区域大,如果能折叠起来可以改善窗体的美观,使用心得仅供大家参考,不周全之处大家谅解。
附件详细使用说明见我此前的文章说明:
http://www.accessoft.com/blog/article-show.asp?userid=72228&Id=20190
================================================================
有人会问直接用InsideWidth不是具备展开区域目的,为什么要搞二个定位在窗体里?
每个窗体有大有小,打开时需要居中显示如果设置好定位的存在调试时更快捷方便。
定位也可以进行二次扩展,具体就不详细说明。
扩展区域的作用:
1》存放隐藏核心参数或者展示附件详细,配备权限时有保密作用
2》主要和次要内容分开显示,【简化窗体】,让参数较多的窗体不臃肿。
==============================================================
扩展区域和折叠功能实现步骤如下:
1》首先设置二个变量
Private gTMPInsideWidth As Long
Private showAll As Boolean
2》在原区域和扩展之后的区域设置定位的目标
cmd5_More 是箭头的控键
Text5 是一个扩展之后的定位作用的文本框控键【定位最远箭头的位置作用】 【使用时最好设置不可见,最小化】
以上二个建议使用时数字编号是一对,在使用时头绪不会紊乱
任意一个在窗体下端的控键或者文本框 收缩显示区域的定位目标。
3》注意事项:
1】如果多个窗体使用折叠扩展显示区域时 箭头控键和文本定位不能使用一个固定的名称,
否则只有第一次使用的窗体正常使用,其他窗体无法使用。【初学者留意】
设计时最好统一分配好数字编号,防止系统紊乱。
2】窗体大小显示不同,收缩的范围不同,定位的箭头有不同,注意自己了解那个是定位的位置
+是向右移动 -是向左移动 【也能实现2次折叠显示】
3】如果收缩之后不合适,系统将无法显示 会变成一个很窄的小窗体只能看到一个“×”
点这个窄窗体上边的“×”才能退出死循环
4》代码如下
Option Compare Database Option Explicit '====================折叠功能专用======================================= Private showAll As Boolean '申明一个扩展区域的变量专用 Private gTMPInsideWidth As Long '申明一个扩展区域的变量专用 Public Function InitData() ClearControlValues Me CurrentDb.Execute "Delete FROM [TMP_纹纸仪匠_次]" '===============附件功能专用===================== Call Me.sfrAttachments.Form.LoadAttachmentData("纹纸图", Me!纹纸图) '===============附件功能专用==================== Me.sfrDetail.Requery End Function Private Sub Form_Load() If CanViewVBACode() Then On Error GoTo 0 Else On Error GoTo ErrorHandler End If ApplyTheme Me LoadLocalLanguage Me '------------------------ Dim cnn As Object '【附件添加的代码】【申明CNN】 Set cnn = CurrentProject.Connection '【附件添加的代码】【设置CNN】 Me.InitData If Nz(Me.OpenArgs) <> "" Then LoadRecord Me, "Select * FROM [纹纸仪匠_主] Where [ID]=" & Nz(Me.OpenArgs, 0) LoadRecord "TMP_纹纸仪匠_次", "Select * FROM [纹纸仪匠_次] Where [纹纸代码]=" & SQLText(Me![纹纸代码]) End If '加载附件时,只能放在这里,否则保存时报警 Call Me.sfrAttachments.Form.LoadAttachmentData("纹纸图", Me!纹纸图) '附件添加的【加载作用】代码 “纹纸图”是保存的时候前缀名称 If Me.DataEntry Then Me![ID] = Null Me![纹纸代码] = Null End If Me.sfrDetail.Requery Me.btnSave.Enabled = Me.AllowEdits '============================== If Me.审核状态 = "已审核" Then '当审核状态=已审核时 Me.AllowEdits = False '窗体的所有编辑功能=关闭 Me.btnSave.Enabled = False '窗体的保存功能=关闭 Me.sfrDetail.Enabled = False '窗体的子窗体编辑功能=关闭 End If '退出假设 '================================= ExitHere: Exit Sub ErrorHandler: MsgBoxEx Err.Description, vbCritical Resume ExitHere End Sub Private Sub btnSave_Click() If CanViewVBACode() Then On Error GoTo 0 Else On Error GoTo ErrorHandler End If If Not CheckRequired(Me) Then Exit Sub If Not CheckTextLength(Me) Then Exit Sub If Not CheckRequired(Me.sfrDetail) Then Exit Sub Dim cnn: Set cnn = CurrentProject.Connection 'ADO.Connection() cnn.BeginTrans Dim blnTransBegin As Boolean: blnTransBegin = True If Nz(Me![纹纸代码]) = "" Then Me![纹纸代码] = GetAutoNumber("纹纸代码") Dim strSQL: strSQL = "Select * FROM [纹纸仪匠_主] Where [ID]=" & Nz(Me![ID], 0) Dim rst: Set rst = ADO.OpenRecordset(strSQL, adLockOptimistic, cnn) If rst.EOF Then rst.AddNew UpdateRecord Me, rst '你的自定义代码 'rst!Field1 = Me!Field1 'rst!Field2 = Me!Field2 rst.Update rst.Close cnn.Execute "Delete FROM [纹纸仪匠_次] Where [纹纸代码]=" & SQLText(Me![纹纸代码]) strSQL = "Select * FROM [纹纸仪匠_次] Where [纹纸代码]=" & SQLText(Me![纹纸代码]) Set rst = ADO.OpenRecordset(strSQL, adLockOptimistic, cnn) Dim rstTmp: Set rstTmp = CurrentDb.OpenRecordset("TMP_纹纸仪匠_次") Do Until rstTmp.EOF rst.AddNew UpdateRecord rstTmp, rst '你的自定义代码 'rst!Field1 = Me!Field1 'rst!Field2 = Me!Field2 rst![纹纸代码] = Me![纹纸代码] rst.Update rstTmp.MoveNext Loop rst.Close rstTmp.Close cnn.CommitTrans blnTransBegin = False RequeryDataObject gsfrList MsgBoxEx LoadString("Saved Successfully."), vbInformation '加载保存附件时,必须放在保存之后,否则保存时出错 Call Me.sfrAttachments.Form.SaveAttachmentData("纹纸图", Me!纹纸图) '【附件添加的保存代码】 If Me.DataEntry Then Me.InitData Else DoCmd.Close acForm, Me.Name, acSaveNo End If ExitHere: Set rst = Nothing Set cnn = Nothing Set rstTmp = Nothing Exit Sub ErrorHandler: If blnTransBegin Then cnn.RollbackTrans blnTransBegin = False End If MsgBoxEx Err.Description, vbCritical Resume ExitHere End Sub
Private Sub btnCancel_Click() On Error Resume Next DoCmd.Close acForm, Me.Name, acSaveNo End Sub Private Sub 停用_Click() If Me.停用 = -1 Then '当停用为假时 MsgBox "你确定要【停用】此数据吗?" & vbNewLine & "系统将【不会采用】本数据!" & vbNewLine & "请慎重选择!", vbExclamation + vbOKOnly '警告提示 +允许确认 Else MsgBox "你确定要【启用】此数据吗?" & vbNewLine & "系统将【使用】本数据!" & vbNewLine & "请慎重选择!", vbExclamation + vbOKOnly '警告提示 +允许确认 End If End Sub Private Sub cmd5_More_Click() If showAll = True Then Me.InsideWidth = Me.Text5.Width + Me.InsideWidth + Me.cmd5_More.Width + 6200 '最大布局的最大宽上放CMD_click的地方 Me.cmd5_More.Left = Me.Text5.Left + 250 'CMD_click的左边位置 在那个按键的地方距离 Me.cmd5_More.Picture = CurrentProject.Path & "\Images\icons\db previous.ico" showAll = False Else Me.InsideWidth = gTMPInsideWidth Me.cmd5_More.Picture = CurrentProject.Path & "\Images\icons\db next.ico" Me.cmd5_More.Left = Me.纹纸图.Left + 11050 'CMD_click的 【新箭头的右边】距离位置 在纹纸图的左侧+11050的位置 showAll = True End If End Sub Private Sub Form_Open(Cancel As Integer) showAll = True Me.cmd5_More.Picture = CurrentProject.Path & "\Images\icons\db next.ico" '隐藏计算部分,并让窗体居中。 Me.InsideWidth = Me.cmd5_More.Left + Me.cmd5_More.Width + 20 '设置显示时窗体的边界在那里 gTMPInsideWidth = Me.InsideWidth Move Me.WindowLeft + Me.纹纸图.Width - 200 '当窗体不居中时,把窗体向左平移200个单位 End Sub
5》示例下载:
6》图示效果:
Access快速开发平台QQ群 (群号:321554481) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)