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.
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:
Adapun properti dari FileDiaolog adalah sebagai berikut:
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).
Contoh File Dialog untuk memilih file image/gambar
Berikut ini adalah kode VBA yang digunakan untuk memilih file gambar:
Contoh eksekusi file di Immediate Window dengan mengaktifkan multiple file (AllowMultiSelect):
Berikut ini adalah kode VBA yang digunakan untuk memilih folder:
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.
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:
| |||||||||
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:
Function kotakFileDialog (Optional strFileName As String = "", Optional boolAllowMultiSelect As Boolean = False) As String 'Aktifkan Microsoft Office Object Library pada Tools - References... (minimum 12.0). Dim fd As Office.FileDialog Dim vrtSelectedItem As Variant, itemFile() As String, i As Integer Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = boolAllowMultiSelect .InitialView = msoFileDialogViewList .Title = "Pilih File Gambar" .Filters.Clear .Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.png; *.bmp", 1 .ButtonName = "Tes pilih file" If .Show Then If .AllowMultiSelect Then ReDim Preserve itemFile(.SelectedItems.Count - 1) i = 0 For Each vrtSelectedItem In .SelectedItems itemFile(i) = vrtSelectedItem i = i + 1 Next vrtSelectedItem kotakFileDialog = Join(itemFile, ",") Else kotakFileDialog = .SelectedItems.Item(1) End If Else If strFileName <> "" Then kotakFileDialog = strFileName End If End With Set fd = Nothing End Function
Contoh eksekusi file di Immediate Window dengan mengaktifkan multiple file (AllowMultiSelect):
?kotakFileDialog(,True) 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.JPGContoh File Dialog untuk memilih folder
Berikut ini adalah kode VBA yang digunakan untuk memilih folder:
Function membukaFolder(Optional strFileName As String = "") As String Dim lngCount As Long 'Aktifkan Microsoft Office Object Library pada Tools - References... (minimum 12.0). With Application.FileDialog(msoFileDialogFolderPicker) .Filters.Clear .Title = "Membuka folder" If .Show Then membukaFolder = Trim(.SelectedItems.Item(1)) Else If strFileName <> "" Then membukaFolder = strFileName End If End With 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.
)
ReplyDeleteSelamat pagi pak Yanto. Apa ada kursus ms Access? saya ingin memperdalam ms Access, selama ini saya belajar sendiri melalui buku. Terima kasih (Bambang 087775431998)
ReplyDeleteSementara 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.
Deletepak 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
DeletePak 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.
DeletePak Hadi juga bisa menambahkan *.* pada folder yang diset melalui fungsi membukaFolder, lalu proses selanjutnya dilakukan di tautan link yang saya sebut di atas.
Deleteuntuk menyembunyikan list driver nya...sehingga yang tampil file ato foldernya.. di file open dialog gimana caranya pak yanto?
ReplyDeleteKalau 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:
Delete.Filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.png; *.bmp; *.dll; *.ocx; dan lain sebagainya", 1
Semoga membantu