Office中国论坛/Access中国论坛

标题: Office2010 代码创建、另存、删除附件 [打印本页]

作者: Grant    时间: 2012-1-11 15:47
标题: Office2010 代码创建、另存、删除附件
本帖最后由 Grant 于 2012-1-11 17:22 编辑

用了一天时间写成了这个东西,准备融入到客户管理软件中去,现在很多客户电脑都安装了新的office2010
不得不转型学习office2010的新功能,发现有不少好东西,暂时先研究这个,先贴上来给大家分享一下

[attach]48053[/attach]

  1. Option Compare Database

  2.     '===============================================================================
  3.     '-函数名称:         modAdj
  4.     '-功能描述:         保存,删除,添加附件
  5.     '-输入参数说明:     参数1:strPath As String 目标路径
  6.     '                   参数2:strFileName As String 文件名称
  7.     '                   参数3:ID As long    自动编号
  8.     '-使用语法示例:     AddAdj(自动编号,文件名,路径)    '添加附件
  9.     '                   DelAdj(自动编号,文件名)         '删除附件
  10.     '                   GetAdj(自动编号,列表框)         '读取附件
  11.     '                   GetSave(自动编号,文件名,路径)   '保存附件
  12.     '-参考:
  13.     '-使用注意:
  14.     '-兼容性:           Office2007,Office2010
  15.     '-作者:             Grant
  16.     '-联系方式:         QQ:20991943  Email:20991943@qq.com
  17.     '-更新日期:        2012-01-11
  18.     '===============================================================================
  19.   Public Function AddAdj(ID As Long, strFileName As String, strPath As String)  '添加附件
  20.     Dim db As Database
  21.     Dim Rstable As Recordset
  22.     Dim RsAdj As Recordset2
  23.    
  24.     '数据库
  25.     Set db = DBEngine.Workspaces(0).Databases(0)
  26.    
  27.     '打开表
  28.     Set Rstable = db.OpenRecordset("select * from 企业信息 where ID=" & ID)

  29. '    While Not Rstable.EOF

  30.         '获取附件列的文件集合
  31.         Set RsAdj = Rstable("附件").Value
  32.         '往附件列添加文件
  33.         Rstable.Edit
  34.         RsAdj.AddNew
  35.         RsAdj("FileData").LoadFromFile (strPath)
  36.         RsAdj("FileName") = strFileName
  37.         RsAdj.Update
  38.         Rstable.Update
  39.         Rstable.Close

  40.   End Function

  41.   Public Function DelAdj(ID As Long, strFileName As String) '添加附件
  42.     Dim db As Database
  43.     Dim Rstable As Recordset
  44.     Dim RsAdj As Recordset2
  45.    
  46.     '数据库
  47.     Set db = DBEngine.Workspaces(0).Databases(0)
  48.    
  49.     '打开表
  50.     Set Rstable = db.OpenRecordset("select * from 企业信息 where ID=" & ID)

  51. '    While Not Rstable.EOF

  52.         '获取附件列的文件集合
  53.         Set RsAdj = Rstable("附件").Value
  54.         '往附件列添加文件
  55.         Rstable.Edit
  56.         While Not RsAdj.EOF
  57.         
  58.             If RsAdj("FileName") = strFileName Then
  59.                 Rstable.Edit
  60.                 RsAdj.Delete
  61.                 Rstable.Update
  62.                 Rstable.Close
  63.                 Exit Function
  64.             End If
  65.             RsAdj.MoveNext
  66.         Wend
  67.         Rstable.Close
  68.   End Function

  69. Public Function GetAdj(ID As Long, list As ListBox) '获取附件,读取到list
  70.     Dim db As Database
  71.     Dim Rstable As Recordset
  72.     Dim RsAdj As Recordset2

  73.     Set db = DBEngine.Workspaces(0).Databases(0)    '数据库
  74.     Set Rstable = db.OpenRecordset("select * from 企业信息 where ID=" & ID) '定位表记录

  75.     If Rstable.RecordCount = 0 Then Exit Function     '记录为0退出
  76.         
  77.         Set RsAdj = Rstable("附件").Value
  78.         While Not RsAdj.EOF                  '循环
  79.           list.AddItem RsAdj("FileName")    '读取文件到列表
  80.         ' RsAdj("FileData").SaveToFile ("C:\Documents" & rsatts("FileName").Value)
  81.           RsAdj.MoveNext
  82.         Wend
  83.         
  84.     Rstable.Close
  85.    
  86. End Function

  87. Public Function GetSave(ID As Long, strFileName As String, strPath As String)
  88.     Dim db As Database
  89.     Dim Rstable As Recordset
  90.     Dim RsAdj As Recordset2
  91.    
  92.     '数据库
  93.     Set db = DBEngine.Workspaces(0).Databases(0)
  94.    
  95.     '打开表
  96.     Set Rstable = db.OpenRecordset("select * from 企业信息 where ID=" & ID)

  97.         Set RsAdj = Rstable("附件").Value

  98.         While Not RsAdj.EOF
  99.         
  100.             If RsAdj("FileName") = strFileName Then
  101.                 If Dir(strPath) <> "" Then
  102.                     Kill strPath
  103.                 End If
  104.                
  105.                 RsAdj("FileData").SaveToFile (strPath)
  106.                 Rstable.Close
  107.                 Exit Function
  108.             End If
  109.             RsAdj.MoveNext
  110.         Wend
  111.         Rstable.Close
  112. End Function

复制代码

作者: JosephTan    时间: 2012-1-11 16:30
看一下。
作者: yanwei82123300    时间: 2012-1-11 16:43
谢谢分享!
作者: godzhong    时间: 2012-1-11 17:04
好东西,先学习下
作者: todaynew    时间: 2012-1-11 17:20
本帖最后由 todaynew 于 2012-1-11 17:24 编辑

建议将增改删独立成为函数
作者: Grant    时间: 2012-1-11 17:24
todaynew 发表于 2012-1-11 17:20
建议将SQL语句作为参数

是的,这个只是初版,很多地方需要完善,本来还想加入写图形进行美化,不过想想控制不便所以暂时先不加入
作者: zhuyiwen    时间: 2012-1-11 19:19
呵呵,附件,好东西
作者: 咱家是猫    时间: 2012-1-11 19:40
我又回来啦.{:soso_e113:}
作者: andymark    时间: 2012-1-11 19:57
谢谢分享!!
作者: sxb2007    时间: 2012-1-11 20:24
谢谢分享!!

作者: goto2008    时间: 2012-1-12 00:14
哇,不错的例子。很有创意哦。
作者: t小宝    时间: 2012-1-12 09:21
附件的功能确实很强大
作者: chenyelkh    时间: 2012-1-12 15:54
:)
作者: changweiren    时间: 2012-1-12 16:24
好东西学到了
作者: Henry D. Sy    时间: 2012-1-13 21:48
进来学习一下
作者: yodong    时间: 2012-1-15 21:49
看看好东西
作者: 门关上    时间: 2012-1-17 11:08
收藏了,好东西不能错过
作者: daxin1    时间: 2012-1-17 11:41
先看看
作者: Jackeyxue    时间: 2012-1-17 14:31
谢谢楼主分享!  
作者: etatufo    时间: 2012-1-20 12:20
谢谢分享
作者: pangzcn    时间: 2012-1-31 20:45
学习呀!
作者: ruanjy    时间: 2012-3-21 09:33
不要不行
作者: h150085001    时间: 2012-3-21 17:48
学习
作者: caoguangyao    时间: 2012-3-21 21:55
学习
作者: c101    时间: 2012-3-21 22:27
谢谢分享
作者: 轻风    时间: 2012-3-21 23:38
好久不见GG大作了
作者: accessbenhum    时间: 2012-3-22 08:26
2003可用否?
作者: simq    时间: 2012-3-29 14:58
正需要,谢谢楼主。
作者: efcndi    时间: 2012-3-29 15:37
没看懂,太高深
作者: boyandmerry    时间: 2012-9-19 23:27
这个不错
作者: 82077802    时间: 2012-9-20 06:18
谢谢分享!
作者: cocopig    时间: 2012-9-20 08:26
学习
作者: smileyoufu    时间: 2013-2-15 19:03
看看怎么用
作者: smileyoufu    时间: 2013-2-15 19:05
不能下载附件,显示“抱歉,该附件无法读取”
作者: yedaoan    时间: 2013-3-14 15:11
是要更新一下知识
作者: yanghua1900363    时间: 2013-3-14 16:17
俺也学习学习!
作者: xyh2732    时间: 2013-4-1 22:16
谢谢分享!!!!!!!!
作者: c101    时间: 2013-4-2 08:14
学习一下
作者: XMX64311    时间: 2013-4-8 12:41
谢谢分享
作者: lkkl66    时间: 2013-5-6 17:39
谢谢提供学习资料
作者: YXH_YXH    时间: 2013-5-20 15:11
帮顶!!!!
作者: snddzxb    时间: 2013-6-15 15:22
学习一下呢
作者: 李力军2    时间: 2013-6-15 21:30
附件是不是有违关系型数据库的基本原理啊?
作者: dfang    时间: 2013-6-16 10:19

作者: gdjdyyj    时间: 2013-6-16 11:18
学习!!
作者: liumporite    时间: 2014-6-28 11:33
我要学习,看看
作者: 327531347    时间: 2015-1-4 14:18
正需要
作者: leonshi    时间: 2015-1-4 15:59
谢谢
作者: llm4947    时间: 2015-1-12 17:43
看一下。
作者: yyalm    时间: 2016-12-9 08:14
看看
作者: hrawea    时间: 2017-4-10 23:33
感谢分享
作者: shixm_1    时间: 2017-5-1 21:45
下载学习
作者: clearskyz    时间: 2017-7-23 17:35
支持
作者: hwmm    时间: 2017-9-14 11:58
谢谢分享!!
作者: liaobus    时间: 2020-3-10 13:01
看看是什么
作者: 390012370    时间: 2024-1-16 18:30
大佬!多谢了!学习一下!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3