Skip to main content

Membuat Sendiri FIle Dialog Menggunakan VBA di MS Access

Kita bisa membuat sendiri sebuah FIle Dialog dengan menggunakan VBA di MS Access. File Dialog atau dialog file adalah sebuah kotak yang menampilkan daftar direktori, folder, atau file. Dengan menggunakan daftar ini, pengguna komputer dipersilakan untuk memilih rincian yang ada di dalamnya.


Kita bisa menggunakan file dialog untuk menautkan sebuah folder, memilih beberapa macam file dan menyimpan file. Sebagai contoh, untuk memilih satu atau lebih file Excel, kita bisa menekan menu File, lalau pilih Open. Sebuah kotak file dialog akan terbuka dan kita bisa menyeleksi berbagai macam file Excel yang akan dipilih. Demikian pula saat kita memilih menu File, lalu pilih Save As, maka sebuah kotak file dialog akan terbuka dan kita bisa memilih atau mengetikkan nama file yang baru untuk disimpan.
Gambar 1. Kotak File Dialog untuk memilih folder

Untuk membuat kotak file dialog di VBA, kita menggunakan objek Application.FileDialog. Cara penulisannya adalah sebagai berikut:

Application.FileDialog(tipeFileDialog)

Parameter tipeFileDialog adalah sebuah pilihan dalam daftar msoFileDialogType yang terdiri dari:

Nilai Keterangan
msoFileDialogOpen Kotak dialog untuk membuka file
msoFileDialogSaveAs Kota dialog untuk menyimpan sebuah file
msoFileDialogFilePicker Kotak dialog untuk memilih file
msoFileDialogFolderPicker Kotak dialog untuk memilih folder

Adapun properti dari FileDiaolog adalah sebagai berikut:
Properti Keterangan
AllowMultiSelect Mengarahkan file dialog unuk memilih satu atau lebih file atau folder. Nilai berupa boolean True atau False.
ButtonName Teks yang ditampilkan pada tombol perintah di kotak dialog.
DialogType Mengubah MsoFileDialogType (lihat tabel di atas)
Filter Mengatur filter untuk memilih jenis file yang ingin ditampilkan, misalnya: file yang berekstensi *.docx,  *.doc, *.mdb, *.txt, dan sebagainya.
InitialFileName Nama path saat kotak fIle dialog terbuka. misalnya: C:\
InitialView Bentuk tampilan saat kotak dialog terbuka, nilainya sebagai berikut:
Nilai
msoFileDialogViewDetails
msoFileDialogViewLargeIcons
msoFileDialogViewList
msoFileDialogViewPreview
msoFileDialogViewProperties
msoFileDialogViewSmallIcons
msoFileDialogViewThumbnail
msoFileDialogViewWebView
SelectedItems Collection of type FileDialogSelectedItems with all selected items
Title Judul dari kotak file dialog.
Show Mengarahkan file dialog untuk menampilkan atau membatalkan hasil seleksi file atau folder di kotak file dialog. Nilai berupa boolean True atau False.

Keterkaitan properti dengan kotak dialog dapat dijelaskan pada gambar di bawah ini. Kode yang digunakan dapat dilihat pada contoh di bawah (Contoh File Dialog untuk memilih file image/gambar).
Gambar 2. Kotak File Dialog untuk memilih file beserta keterkaitan dengan properti FileDialog

Contoh File Dialog untuk memilih file image/gambar

Berikut ini adalah kode VBA yang digunakan untuk memilih file gambar:
  1. Function kotakFileDialog (Optional strFileName As String = ""Optional boolAllowMultiSelect As Boolean = FalseAs String  
  2. 'Aktifkan Microsoft Office Object Library pada Tools - References... (minimum 12.0).  
  3.   Dim fd As Office.FileDialog  
  4.   Dim vrtSelectedItem As Variant, itemFile() As String, i As Integer  
  5.     
  6.   Set fd = Application.FileDialog(msoFileDialogFilePicker)  
  7.     
  8.   With fd  
  9.     .AllowMultiSelect = boolAllowMultiSelect  
  10.     .InitialView = msoFileDialogViewList  
  11.     .Title = "Pilih File Gambar"  
  12.     .Filters.Clear  
  13.     .Filters.Add "Images""*.gif; *.jpg; *.jpeg; *.png; *.bmp", 1  
  14.     .ButtonName = "Tes pilih file"  
  15.     If .Show Then  
  16.       If .AllowMultiSelect Then  
  17.         ReDim Preserve itemFile(.SelectedItems.Count - 1)  
  18.         i = 0  
  19.         For Each vrtSelectedItem In .SelectedItems  
  20.           itemFile(i) = vrtSelectedItem  
  21.           i = i + 1  
  22.         Next vrtSelectedItem  
  23.         kotakFileDialog = Join(itemFile, ",")  
  24.       Else  
  25.         kotakFileDialog = .SelectedItems.Item(1)  
  26.       End If  
  27.     Else  
  28.       If strFileName <> "" Then kotakFileDialog = strFileName  
  29.     End If  
  30.   End With  
  31.       
  32.   Set fd = Nothing  
  33.   
  34. End Function  

Contoh eksekusi file di Immediate Window dengan mengaktifkan multiple file (AllowMultiSelect):
  1. ?kotakFileDialog(,True)  
  2. C:\Documents and Settings\User1\My Documents\My Pictures\DSCN3887.JPG,C:\Documents and Settings\User1\My Documents\My Pictures\DSCN3869.JPG,C:\Documents and Settings\User1\My Documents\My Pictures\DSCN3874.JPG,C:\Documents and Settings\User1\My Documents\My Pictures\DSCN3883.JPG  
Contoh File Dialog untuk memilih folder

Berikut ini adalah kode VBA yang digunakan untuk memilih folder:
  1. Function membukaFolder(Optional strFileName As String = ""As String  
  2.     Dim lngCount As Long  
  3.  'Aktifkan Microsoft Office Object Library pada Tools - References... (minimum 12.0).  
  4.     With Application.FileDialog(msoFileDialogFolderPicker)  
  5.       .Filters.Clear  
  6.       .Title = "Membuka folder"  
  7.       If .Show Then  
  8.         membukaFolder = Trim(.SelectedItems.Item(1))  
  9.       Else  
  10.         If strFileName <> "" Then membukaFolder = strFileName  
  11.       End If  
  12.     End With  
  13. End Function  

Memfilter file dialog


Pengaturan untuk memilih dua file atau lebih dengan menggunakan Application.FileDialog mungkin bisa menimbulkan masalah. Masalah akan timbul bila hasil/output dari Application.FileDialog berisi nama-nama file yang sudah dipilih melalui eksekusi perintah Application.FileDialog sebelumnya. Untuk mencegah masalah seperti ini, maka kita harus mengikutsertakan metode .Filters.Clear sebelum semua pilihan file ditampilkan sebagai output.

Comments

  1. Selamat pagi pak Yanto. Apa ada kursus ms Access? saya ingin memperdalam ms Access, selama ini saya belajar sendiri melalui buku. Terima kasih (Bambang 087775431998)

    ReplyDelete
    Replies
    1. Sementara sih belum, lebih banyak melalui japri/pm. Kalau peminat banyak, akan saya pertimbangkan. Kalau memang P Bambang berminat silakan kirim email, alamat email saya ada di halaman Download File di atas.

      Delete
    2. pak yanto, dengan kasus di atas, kita akan memilih file yang ada dalam folder, kalau misalkan kita memilih folder saja dan nanti akan terpilih semua file yang ada dalam folder maupun subfolder tersebut, yang dirumah di bagian apa ya. terima kasih

      Delete
    3. Pak Hadi, kalau bapak ingin menjalankan operasi tertentu seperti mengcopy, rename, atau delete file pada folder yang diset melalui fungsi membukaFolder bisa menggunakan administrasi sistem dengan FileSystemObject di http://access-terapan.blogspot.co.id/search/label/Administrasi%20Sistem, yang membahas copy, rename, hapus, remove. Fungsi membukaFolder atau kotakFileDialog di atas sebatas untuk menyeleksi nama folder atau file saja, proses selanjutnya ada di tautan link yang saya sebut itu.

      Delete
    4. Pak Hadi juga bisa menambahkan *.* pada folder yang diset melalui fungsi membukaFolder, lalu proses selanjutnya dilakukan di tautan link yang saya sebut di atas.

      Delete
  2. untuk menyembunyikan list driver nya...sehingga yang tampil file ato foldernya.. di file open dialog gimana caranya pak yanto?

    ReplyDelete
    Replies
    1. Kalau khusus untuk pengecualian seperti itu sepertinya nggak ada. Kamu mesti buat dulu daftar dalam bentuk array semua list dengan tidak memasukkan lis drive. Agak panjang buat kodenya, hasil akhirnya nanti bisa mengeksekusi berikut ini:

      .Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.png; *.bmp; *.dll; *.ocx; dan lain sebagainya", 1

      Semoga membantu

      Delete

Post a Comment

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

Memahami Properti Validation Rule dan Validation Text pada Tabel di Access

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access