<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. Access微課連載
      網站公告
      ·Access快速平臺QQ群號:84825014    ·Access快速開發平臺下載地址及教程    ·歡迎添加微信交流賬號:AccessoftChu    ·如何快速搜索本站文章|示例|資料    
      您的位置: 首頁 > 技術文章 > Access數據庫-模塊/函數/VBA

      新版"文件對話框"

      時 間:2010-12-05 00:00:00
      作 者:咱家是貓   ID:85  城市:廣州
      摘 要:應一些網友要求(要求加入多行文件類型篩選),而對原來寫的文件對話框進行了改版
      正 文:

      ,現共享如下:

      Function GetFileName(Optional ByVal DialogType As MsoFileDialogType = msoFileDialogFilePicker, Optional ByVal TitleStr As String = "打開", Optional ByVal FilterStr As String = "所有文件(*.*)", Optional ByVal MultiSelect = False, Optional ByVal PathStr As String) As String
      '此函數需要引用Microsoft Office 12.0(或14.0) Object Library
      '參數說明:
      'DialogType 打開文件對話框的類型
          'msoFileDialogFilePicker    文件對話框
          'msoFileDialogFolderPicker  文件夾對話框
          'msoFileDialogOpen          打開...
          'msoFileDialogSaveAs        另存為...
      'TitleStr   對話框標題文字
      'FilterStr  文件類型篩選條件
          '本條件只對打開文件有效
          '如果要設置此字符串,請遵循以下格式("條件文字描述(類型設定)),多條件之間用";"號隔開.如:
          '"BMP格式文件(*.BMP);JPG格式文件(*.JPG);TXT文件(*.TXT)"
      'MultiSelect    是否多選
          '設置文件對話框是否可以多選(基本上很少用)
      'PathStr    默認路徑
          '如果未指定,則默認為當前實例路徑
      '作者說明:以上各參數都已經設置了可缺少默認的,(意思是:你常用的打開一個文件夾,選擇一個文件功能是可以一個參數都不用輸入的)
      '最簡單的你可以這么用:FileName=GetFileName()
      '最復雜的你可以這么用(哈哈,夠長)如下:
      'FileName = GetFileName(msoFileDialogFilePicker, "打開圖片文件", "BMP格式圖片(*.bmp);JPG格式圖片(*.jpg);GIF格式圖片(*.gif)", False, "D:\Documents\")
      '作者:咱家是貓 QQ 130036500
      '日期:2010年12月04日

      On Error Resume Next
          Dim dlgOpen As FileDialog
          Dim I As Integer, S As String, A As String, B As String
          Set dlgOpen = Application.FileDialog(DialogType)
          With dlgOpen
              .title = TitleStr
              .Filters.Clear
              For I = 0 To UBound(Split(FilterStr, ";", -1), 1)
                  S = Split(FilterStr, ";", -1)(I)
                  A = Left(S, InStr(S, "(") - 1)
                  B = Mid(S, InStr(S, "(") + 1)
                  B = Left(B, InStr(B, ")") - 1)
                  .Filters.Add A, B
              Next
              .AllowMultiSelect = MultiSelect
              If IsMissing(PathStr) Then
                  .InitialFileName = CurrentProject.Path
              Else
                  .InitialFileName = PathStr
              End If
              .Show
          End With
          If dlgOpen.SelectedItems.Count > 0 Then
              GetFileName = dlgOpen.SelectedItems(1)
          Else
              GetFileName = ""
          End If
          Set dlgOpen = Nothing
      End Function



      Access軟件網QQ交流群 (群號:143677707)       access源碼網店

      最新評論 查看更多評論(2)

      2012/10/26 16:23:08benhum
      謝謝貓哥。ACCESS2003也可以用哦。

      2010/12/4 10:29:32zla
      非常感謝,,,,, 因為有你們精采的指導,  才讓菜鳥能飛 ,飛的更高,飛的更遠..........

      發表評論您的評論將提升作者分享的動力!快來評論一下吧!

      用戶名:
      密 碼:
      內 容:
       

      常見問答

      技術分類

      相關資源

      關于我們 | 服務條款 | 在線投稿 | 友情鏈接 | 網站統計 | 網站幫助