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

Access开发平台--通用附件文件名自动生成,设计思路及实现代码

时 间:2017-04-08 15:12:32
作 者:小司   ID:41462  城市:连云港
摘 要:在使用平台开发的过程中发现通用附件模块有几个不太适用的地方所以激起了我深入研究改进的想法,今天将具体实现的功能与大家分享。
需要的功能:因为使用附件比较频繁,且附件文件很多,通用附件平台又不能自动命名文件名,会将重名的文件进行覆盖,所以我希望平台通用附件可以自己命名附件名称,不重复且可以自己编写命名规则。
正 文:

      在使用平台开发的过程中发现通用附件模块有几个不太适用的地方所以激起了我深入研究改进的想法,今天将具体实现的功能与大家分享。

需要的功能:因为使用附件比较频繁,且附件文件很多,通用附件平台又不能自动命名文件名,会将重名的文件进行覆盖,所以我希望平台通用附件可以自己命名附件名称,不重复且可以自己编写命名规则。

实现思路:附件名称自动生成我使用平台自带的自动编号功能,然后通过获取需要上传的附件扩展名拼接自动编号的方式,实现附件的自动且有规则的命名方式;

实现方法:

1、登录平台进入“自动编号管理”,创建一个“规则名称”为“Attachments”的编号规则。


2、获取附件文件的文件扩展名。

点击图片查看大图

在标准模块中创建一个模块,名称可以自拟,我使用“AttNameFunc”作为模块名称,并在模块中输入如下代码(如下代码为网络搜索所得):

Public Function GetAttachmentSuffix(strAttachmentName As String) As String    
    '返回文件后缀名称
    '例:"C:\FileName.txt" 输出结果:" .txt"
    Dim I As Integer
    For I = Len(strAttachmentName) To 1 Step -1
        '文件名中不允许有"\"字符,如返回"\"则文件没有后缀名称    
        If Mid$(strAttachmentName, I, 1) = "\" Then
              GetAttachmentSuffix = ""
              Exit Function
        End If        
        If Mid$(strAttachmentName, I, 1) = "." Then
            GetAttachmentSuffix = Mid$(strAttachmentName, I)
            Exit Function
        End If
    Next I
End Function


3、在通用附件(窗体SysFrmAttachments)中编写文件名代码,打开窗体SysFrmAttachments,并进入设计视图,

    (1)点击(Add/添加)按钮进入“事件过程”找到如下代码中的一种:

点击图片查看大图

       第一种:    Me.txtAttachmentName = Mid(varItem, InStrRev(varItem, "\") + 1)
       第二种:    Me.txtAttachmentName = Me.txtDataID & "_" & Mid(varItem, InStrRev(varItem, "\") + 1)
上述两个代码与使用的通用附件模块不同而不同,将其替换为如下代码:

    Me.txtAttachmentName = GetAutoNumber("Attachments") & GetAttachmentSuffix(Mid(varItem, InStrRev(varItem, "\") + 1))


    (2)点击(Replace/替换)按钮进入“事件过程”找到如下代码中的一种

点击图片查看大图

        Me.txtAttachmentName = Mid(.SelectedItems(1), InStrRev(.SelectedItems(1), "\") + 1)

    将其替换为如下代码:

        Me.txtAttachmentName = GetAutoNumber("Attachments") & GetAttachmentSuffix(Mid(.SelectedItems(1), InStrRev(.SelectedItems(1), "\") + 1))


4、保存上述编辑内容,重新登录平台,查看效果。


5、如有不妥之处,还请大家多提意见。



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

常见问答:

技术分类:

相关资源:

专栏作家

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