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.

Function bacaTeksFile()
  Dim strIsi, strBaris As String
  Dim fso As Object
  Dim oFile As Object
  Dim Const ForReading as Integer=1

  Set fso = CreateObject("Scripting.FileSystemObject")
  Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\201605312040.txt", 1)
  Debug.Print "Pembacaan pertama:"
  strIsi = oFile.ReadAll
  Debug.Print strIsi
'Aktifkan dua baris di bawah ini untuk memperoleh isi data dengan cara yang berbeda, carany: hapus tanda komentar (')
'  oFile.Close
'  Set oFile = fso.OpenTextFile("D:\SoftwareAkuntansi\201605312040.txt", ForReading )
  Debug.Print "Pembacaan kedua, mengulang pembacaan pertama dengan cara berbeda:"
  Do While oFile.AtEndOfStream = False
    strBaris = oFile.ReadLine
    Debug.Print strBaris
  Loop
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:
?bacaTeksFile
Pembacaan pertama: 
Contoh For Writing 1

Contoh For Writing 2
Contoh For Appending 1

Contoh For Appending 2

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.
  oFile.Close
  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

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access