設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 17505|回復(fù): 55
打印 上一主題 下一主題

[模塊/函數(shù)] Office2010 代碼創(chuàng)建、另存、刪除附件

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2012-1-11 15:47:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 Grant 于 2012-1-11 17:22 編輯

用了一天時間寫成了這個東西,準(zhǔn)備融入到客戶管理軟件中去,現(xiàn)在很多客戶電腦都安裝了新的office2010
不得不轉(zhuǎn)型學(xué)習(xí)office2010的新功能,發(fā)現(xiàn)有不少好東西,暫時先研究這個,先貼上來給大家分享一下


  1. Option Compare Database

  2.     '===============================================================================
  3.     '-函數(shù)名稱:         modAdj
  4.     '-功能描述:         保存,刪除,添加附件
  5.     '-輸入?yún)?shù)說明:     參數(shù)1:strPath As String 目標(biāo)路徑
  6.     '                   參數(shù)2:strFileName As String 文件名稱
  7.     '                   參數(shù)3:ID As long    自動編號
  8.     '-使用語法示例:     AddAdj(自動編號,文件名,路徑)    '添加附件
  9.     '                   DelAdj(自動編號,文件名)         '刪除附件
  10.     '                   GetAdj(自動編號,列表框)         '讀取附件
  11.     '                   GetSave(自動編號,文件名,路徑)   '保存附件
  12.     '-參考:
  13.     '-使用注意:
  14.     '-兼容性:           Office2007,Office2010
  15.     '-作者:             Grant
  16.     '-聯(lián)系方式:         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.     '數(shù)據(jù)庫
  25.     Set db = DBEngine.Workspaces(0).Databases(0)
  26.    
  27.     '打開表
  28.     Set Rstable = db.OpenRecordset("select * from 企業(yè)信息 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.     '數(shù)據(jù)庫
  47.     Set db = DBEngine.Workspaces(0).Databases(0)
  48.    
  49.     '打開表
  50.     Set Rstable = db.OpenRecordset("select * from 企業(yè)信息 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)    '數(shù)據(jù)庫
  74.     Set Rstable = db.OpenRecordset("select * from 企業(yè)信息 where ID=" & ID) '定位表記錄

  75.     If Rstable.RecordCount = 0 Then Exit Function     '記錄為0退出
  76.         
  77.         Set RsAdj = Rstable("附件").Value
  78.         While Not RsAdj.EOF                  '循環(huán)
  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.     '數(shù)據(jù)庫
  93.     Set db = DBEngine.Workspaces(0).Databases(0)
  94.    
  95.     '打開表
  96.     Set Rstable = db.OpenRecordset("select * from 企業(yè)信息 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

復(fù)制代碼
游客,如果您要查看本帖隱藏內(nèi)容請回復(fù)

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?注冊

x

評分

參與人數(shù) 3經(jīng)驗 +30 收起 理由
roych + 10 很給力!
咱家是貓 + 10 贊一個!
todaynew + 10 贊一個!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2012-1-11 16:30:03 | 只看該作者
看一下。
3#
發(fā)表于 2012-1-11 16:43:32 | 只看該作者
謝謝分享!
4#
發(fā)表于 2012-1-11 17:04:12 | 只看該作者
好東西,先學(xué)習(xí)下
5#
發(fā)表于 2012-1-11 17:20:48 | 只看該作者
本帖最后由 todaynew 于 2012-1-11 17:24 編輯

建議將增改刪獨(dú)立成為函數(shù)
6#
 樓主| 發(fā)表于 2012-1-11 17:24:01 | 只看該作者
todaynew 發(fā)表于 2012-1-11 17:20
建議將SQL語句作為參數(shù)

是的,這個只是初版,很多地方需要完善,本來還想加入寫圖形進(jìn)行美化,不過想想控制不便所以暫時先不加入

點(diǎn)擊這里給我發(fā)消息

7#
發(fā)表于 2012-1-11 19:19:50 | 只看該作者
呵呵,附件,好東西
8#
發(fā)表于 2012-1-11 19:40:45 | 只看該作者
我又回來啦.{:soso_e113:}
9#
發(fā)表于 2012-1-11 19:57:38 | 只看該作者
謝謝分享!
10#
發(fā)表于 2012-1-11 20:24:35 | 只看該作者
謝謝分享!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 08:28 , Processed in 0.137199 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表