盟威Access快速开发平台2.6.5.547版本--★附件功能详细说明★
时 间:2022-02-18 14:13:08
作 者:张旭军 ID:72228 城市:杭州
摘 要:盟威平台★附件功能详细说明★。
正 文:
盟威Access快速开发平台由于采用Mdb格式不能直接使用附件功能,但是附件在日常操作中有很多作用,希望大家学会原理,提高办公效率。
如果附件匹配上折叠功能,即简单又实用,尽供大家参考。
注意:2022-3-14已经更新,保存时报警提示。
感谢hjc19841984的帮助。
请把代码复制粘贴覆盖原代码。
1》在引导加载前【初始数据】【Public Function InitData()】中需要【加载附件代码】
2》在传递参数之后,需要再【加载附件代码】一次,否则保存时会报警。
3》在加载保存时,【附件的保存代码】必须放在保存完成之后,否则保存时报警。
本文在欧志华先生的原理文章基础上
Access快速开发平台2.6.5.547版本--附件及图片功能注意事项 [欧志华 2022/2/16 10:26:32]
对原著的代码上进行注解,供大家参考。没有讲清楚的地方,请见谅!
再次感谢欧志华先生!
复制以下代码覆盖 http://www.accessoft.com/article-show.asp?id=20188 的frm商品信息_Edit 所有代码 供大家慢慢研究 见谅!
以下绿色部分是附件代码的使用说明和附件的重点代码!
附件代码的位置,增加的位置一定看清楚!
其中一个是加载附件的代码 一个是保存附件的代码,不要看错!
'【使用须知】 -----------------------------------------------------------------
'只能在平台上使用------------------------------------------------------------------
'编辑窗体中添加一个子窗体控件,控件名修改为“sfrAttachments”,其“源对象”属性设为“SysFrmAttachments”,
'然后在加载和保存数据时,添加一行调用代码即可
'以下对附件功能的详细说明见具体步骤
'附件功能使用以下函数
'函数LoadAttachmentData 加载附件功能的函数
'函数SaveAttachmentData 保存附件功能的函数
'详细的函数的使用说明 http://www.accessgood.com/help/UniversalAttachment.html
Option Compare Database
Option Explicit
Public Function InitData()
ClearControlValues Me
'--------------------------初始数据时此处必须加载附件,否则保存时报警---------------------------------------------------------
Call Me.sfrAttachments.Form.LoadAttachmentData("商品照片", Me!商品ID) '附件添加的【加载作用】的代码
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 '附件添加的代码 申明变量
Set cnn = CurrentProject.Connection '附件添加的代码 设置变量
'-------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------
If Nz(Me.OpenArgs) <> "" Then
LoadRecord Me, "Select * FROM [商品信息表] Where [商品ID]=" & Nz(Me.OpenArgs, 0)
End If
'-----------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------
Call Me.sfrAttachments.Form.LoadAttachmentData("商品照片", Me!商品ID, cnn) '附件添加的【加载作用】的代码
’不能放在传递数据的地方,必须放在传递数据之后,否则保存时报警
'----------------------------------------------------------------------------------- ’“商品照片”的作用是给存放附件的名称 增加【前缀】作用
'----------------------------------------------------------------------------------- ’“商品照片”建议使用 对应窗体的关键名称当【前缀】
If Me.DataEntry Then
Me![商品ID] = Null
End If
Me.btnSave.Enabled = Me.AllowEdits
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
Dim strWhere As String
strWhere = "[商品ID]<>" & Nz(Me![商品ID], 0) & " AND [商品编码]=" & SQLText(Me![商品编码])
If ACount("*", "商品信息表", strWhere) > 0 Then
MsgBoxEx "【商品编码】已存在,不允许重复录入。", vbCritical
Exit Sub
End If
Dim cnn: Set cnn = CurrentProject.Connection 'ADO.Connection()
'cnn.BeginTrans
'Dim blnTransBegin As Boolean: blnTransBegin = True
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.CommitTrans
'blnTransBegin = False
RequeryDataObject gsfrList
MsgBoxEx LoadString("Saved Successfully."), vbInformation
'-------------------------必须放在保存之后 ,否则保存时报警------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------
'-------------------------------------------------------------------------------------------------
Call Me.sfrAttachments.Form.SaveAttachmentData("商品照片", Me!商品ID) '附件功能添加的【保存作用】代码
'----------------------------------------------------------------------------------- ’“商品照片”的作用是给存放附件的名称 增加【前缀】作用
'----------------------------------------------------------------------------------- ’“商品照片”建议使用 对应窗体的关键名称当【前缀】
If Me.DataEntry Then
Me.InitData
Else
DoCmd.Close acForm, Me.Name, acSaveNo
End If
ExitHere:
Set rst = Nothing
Set cnn = 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
这里大家就知道 前缀的作用 这里的名称为 织造工艺照片
以下相同颜色字体为对应位置关系
织造工艺照片 8822-601 020 源源竹节详细规格2.jpg
【前缀】 +【窗体唯一值】 +【附件对象的全称】 ←系统保留在共享文件夹里格式
以上格式见下面截图。
【注意这里是把原图片复制到【共享文件夹】里,建议原文件不要放此共享文件夹内,随着时间变化使用量的增加共享文件夹必定膨胀不方便管理也不安全】【建议把共享文件夹的属性右键改成隐藏,防止误操作】【共享文件夹也要定期维护,当文件缺失时打开对应的窗体会报错】
注意:在平台里附件不需要单独设置对应的行来源,直接在原窗体上增加一个子窗体,把子窗体必须取名为sfrAttachments,其“源对象”属性设为“SysFrmAttachments”,即可。
【SysFrmAttachments】是平台自带的窗体,所以只要创建一个子窗体指定相同的窗体名称就能借用其已经设置好的构架。
【限制附件的方法】
sfrAttachments是附件功能的子窗体的名称
Me.sfrAttachments.Enabled=True 激活附件的权限
Me.sfrAttachments.Enabled=False 取消附件的权限
增加或者删除附件对象时,
有【前缀】 +【窗体唯一值】 +【附件对象的全称】的命名原则上不会匹配紊乱的问题。
注意:附件的记录修改保存时与其他窗体工作原理不同 。
当在窗体里删除附件的内容时,共享文件夹也会同步自动删除对应的文件,放心使用。
关于共享文件夹的使用进阶
1》养成每年创建年份共享文件夹名称的习惯,集中收纳管理。
2》共享文件夹的主目录,根据水平采用隐藏手段,防止误删除发生
3》在共享文件夹内必须手动建立相应的年份的目录,否则系统报错。
4》原系统自动保存的附件文件,原存放路径只要不改变不会因为创建新的共享文件地址而失效。放心使用。
常出的问题:
1》找不到附件 如果是局域网使用 在【系统设置】里设置本地的【共享的文件夹】,其他用户是看不到附件内容。
2》如果DataID 在使用不是ID数字型 保存是没有问题的。 但是保存记录时有出错警告。因为DataID是平台自带的数字格式,
3》平台的根目录有一个【Attachments】文件夹是系统存放附件的,在【Attachments】还有一个文本文件UpdateFlag.ini。如果任意一个被清理,系统的附件的内容提示“找不到附件”。此文件夹最好把属性也改成隐藏,防止误操作。
【窗体唯一值】尽量设置成数字类型。
示例学习:
盟威Access快速开发平台V2.6.5版(32位)附件示例
示例图示:
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)