Skip to main content

Menutup File Teks di Access VBA

Semua file teks yang dibuka dengan menggunakan kode program secara otomatis akan ditutup saat kode program selesai dijalankan. Oleh karena itu, kita tidak harus secara eksplisit menutup file teks setiap kali membukanya. Walaupun demikian, menutup file teks secara eksplisit (dengan menulis pernyataan penutup) sebaiknya tetap dilakukan bila kita telah membuka file teks itu.



Seperti telah dijelaskan di posting sebelumnya yang berjudul Membuka File Teks di Access VBA, untuk menghindari risiko yang tidak diinginkan, adalah lebih baik bila kita menutup sebuah file teks yang sudah dibuka. Apalagi bila pada baris berikutnya, kita ingin membuka file teks dengan mode yang berbeda, maka menutup file teks mutlak diperlukan. Selain merupakan praktek pemrograman yang baik, menutup file teks juga menghindarkan kita dari masalah seperti berikut ini:
  • Menghapus file.teks. Kadangkala, kita membuat file teks melalu kode program, menggunakan file teks itu untuk tujuan tertentu, dan kemudian menghapusnya sebelum kode program selesai dijalankan. Bila file teks yang posisinya masih terbuka ingin dihapus, maka akan muncul pesan kesalahan "Access denied", karena sistem operasi melarang kita untuk menghapus file yang masih terbuka.
  • Membaca kembali file teks. Kita sering mengarahkan kode program untuk membaca file teks berulang kali. Misalnya, kita membuka file teks, menyimpan semua isi file teks itu dalam sebuah variabel string di memori sementara, lalu mencari string yang mempunyai kode kesalahan tertentu. Jika kode kesalahan itu ditemukan, kita mengarahkan kode program untuk membaca file teks - baris demi baris - dengan menggunakan looping dan menampilkan baris yang mempunyai kode kesalahan itu di layar.
Jika kita membuat kode program untuk membaca file yang terbuka berulang kali, maka hasilnya mungkin tidak seperti yang diharapkan atau malah akan menemui run-time error. Contohnya seperti fungsi bacaTeksFile berikut ini yang menampilkan isi dari file teks ke layar, untuk kemudian menampilkan isi file teks yang sama tetapi dengan cara yang berbeda.

  1. Function bacaTeksFile()  
  2.   Dim strIsi, strBaris As String  
  3.   Dim fso As Object  
  4.   Dim oFile As Object  
  5.   Dim Const ForReading as Integer=1  
  6.   
  7.   Set fso = CreateObject("Scripting.FileSystemObject")  
  8.   Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\201605312040.txt", 1)  
  9.   Debug.Print "Pembacaan pertama:"  
  10.   strIsi = oFile.ReadAll  
  11.   Debug.Print strIsi  
  12. 'Aktifkan dua baris di bawah ini untuk memperoleh isi data dengan cara yang berbeda, carany: hapus tanda komentar (')  
  13. '  oFile.Close  
  14. '  Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\201605312040.txt", ForReading )  
  15.   Debug.Print "Pembacaan kedua, mengulang pembacaan pertama dengan cara berbeda:"  
  16.   Do While oFile.AtEndOfStream = False  
  17.     strBaris = oFile.ReadLine  
  18.     Debug.Print strBaris  
  19.   Loop  
  20. End Function  
Fungsi bacaTeksFile membaca isi file D:\SoftwareAkuntansi\201605312040.txt seperti telah di-post di "Membuka File Teks di Access VBA" pada tautan di atas. Adapun isi dari file 201605312040.txt ada di gambar berikut ini.
Bila fungsi bacaTeksFile dijalankan di Immediate Window, maka hasilnya seperti ini:
  1. ?bacaTeksFile  
  2. Pembacaan pertama:   
  3. Contoh For Writing 1  
  4.   
  5. Contoh For Writing 2  
  6. Contoh For Appending 1  
  7.   
  8. Contoh For Appending 2  
  9.   
  10. Pembacaan kedua, mengulang pembacaan pertama dengan cara berbeda:  

Saat pertama kali file teks dibaca, isinya disimpan dalam variable string strIsi. Saat file teks itu dibaca untuk kedua kalinya (melalui Do While...Loop), tidak ada isi file yang bisa ditampilkan karena posisi pembacaan telah berada di akhir file. Untuk membacanya kembali, maka kita harus menutup file teks itu dan membukanya kembali. Untuk menutup file teks, kita menggunakan metode Close. Sebagai contoh, dengan mengaktifkan baris 13 dan 14 pada fungsi bacaTeksFile, seperti berikut ini, maka pembacaan kedua berhasil dilakukan.
  1.   oFile.Close  
  2.   Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\ElexMedia3\BonusCD\Final\201605312040.txt", 1)  

Dengan mengaktifkan kode di atas, posisi pembacaan akan kembali berada di awal file. Kode program berikutnya kemudian dapat dijalankan dengan sempurna. Adapun isi pembacaan kedua sama dengan isi pembacaan pertama.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

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

Fungsi Untuk Membuka Database di Access VBA