Skip to main content

Mengekspor Data Dari Access ke Excel

Adakalanya, karena satu dan lain hal, seperti misalnya kemampuan membuat jenis report yang terbatas, bentuk format tidak seperti yang diinginkan, informasi yang diperoleh tidak optimal, dan sebagainya, kita ingin mengolah data dengan menggunakan aplikasi spreadsheet semacam Excel. Dengan Excel, bentuk report yang memanjang ke kanan akan lebih mudah dicetak sesuai dengan keinginan, karena spreadsheet itu menyediakan fasilitas colum to repeat at left, sehingga kolom disebelah kiri bisa dicetak ulang di halaman berikutnya, mirip seperti row to repeat at top atau header di Access yang mencetak ulang bagian atas di setiap halaman kertas.

Gambar 1
Buatlah form dengan Blank Form dan simpanlah dengan nama frmEksporDialog. Atur properti Modal=Yes pada form ini sehingga form ini hanya akan tampil di atas form lain.

Setelah itu, pada bagian form detail, sisipkan text box kosong (unbound) dengan Name=nmFile. Di bawah text box nmFile, sisipkan label dengan Caption= Nama file akan disimpan dengan Excel versi lama (Excel 2000), jadi jangan lupa untuk menambahkan ekstensi .xls di akhir nama file. File itu dapat dibuka dengan Excel versi terbaru. Dibawah label ini, kita dapat menyisipkan text box atau label, yang fungsinya untuk memberi contoh penulisan seperti tersaji pada Gambar 1.

Di bawah label contoh penulisan, sisipkan tombol perintah dengan properti Name= OKEkspor dan Caption=OK. Setelah itu, sisipkan 2 buah label yang berfungsi untuk memberitahu bahwa data sudah diekspor ke Excel sesuai dengan text box nmFile di atas dan pengguna diminta mengekliknya untuk membuka file Excel itu. Label pertama mempunyai properti Name=lblEkspor, Caption= Data sudah diekspor ke Excel dengan nama:, visible=No. Label kedua mempunyai properti Name= LokasiTarget, Caption=Nama file, dan Visble=No. Kedua label ini hanya muncul saat ekspor data berhasil dilakukan.
Gambar 2
Salinlah kode VBA ini dapa modul form frmEkporDialog:
Option Compare Database
Private Sub Form_Open(Cancel As Integer)
    Me.Caption = "Ekspor Data ke Excel " & Nz(IdPerusahaan("Nama"), "")
    If Not IsNull(Me.LoginPgn) Then Me.logout.Visible = True
    Me.nmFile.DefaultValue = "'" & BacaLokasiFolder  & globNamaObyek & ".xls'"
End Sub
Private Sub nmFile_GotFocus()
    Me.LblEkspor.Visible = False
    Me.LokasiTarget.Visible = False
End Sub
Private Sub OKEkspor_Click()
    Dim qdfTemp As QueryDef
    If Not AdaFolder(Me.nmFile) Then
        MsgBox "Tidak ada folder/directory ini: " & NamaFolder(Me.nmFile)
        Exit Sub
    End If
    If Right(Me.nmFile, 4) <> ".xls" Then
        MsgBox "Nama file harus berekstensi .xls"
        Exit Sub
    End If
    If Right(Me.nmFile, 1) = "\" Then
        MsgBox "Tidak ada nama file/directory di folder ini: " & Me.nmFile
        Exit Sub
    End If
    If AdaTabelQuery(globSumberRecord) Then
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, globSumberRecord, Me.nmFile, True
    Else
        DoCmd.SetWarnings False
        If AdaTabelQuery("qdfEkspor") Then DoCmd.DeleteObject acQuery, "qdfEkspor"
        CurrentDb.CreateQueryDef "qdfEkspor", globSumberRecord
        DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "qdfEkspor", Me.nmFile, True
        DoCmd.DeleteObject acQuery, "qdfEkspor"
        DoCmd.SetWarnings True
    End If
    Me.LblEkspor.Visible = True
    Me.LokasiTarget.HyperlinkAddress = Me.nmFile
    Me.LokasiTarget.Caption = Me.nmFile
    Me.LokasiTarget.Visible = True
End Sub
Supaya form frmEksporDialog bisa ditampilkan, maka kita harus membuat tombol perintah ekspor di form yang datanya akan diekspor. Lalu, untuk membuka form itu, gunakan fungsi yang telah kita buat di modul mdlGlobal, yaitu:

EksporKeExcel(strNamaObyek, strSumber, [strSubSumber])

Variabel strNamaObyek adalah nama target file pada Excel. Kita dapat memberikan default nama sesuai dengan yang diinginkan seperti kombinasi dari berbagai macam kriteria yang mungkin ada, mengambil nama judul form, dan sebagainya. Variabel strSumber adalah nama form yang aktif terbuka, digunakan untuk membaca record source dari form itu. Bila tidak ada record source dalam form yang terbuka dan record source yang kita inginkan ada di subform, maka kita harus menambahkan variabel lain. Variabel lain itu adalah strSubSumber yang merupakan nama subform yang aktif terbuka (bila di form tidak ada).

Sebagai misal, data laporan pertanggungjawaban biaya pada frmResponBiaya di atas. Tambahkan tombol perintah dengan properti Name=Ekspor dan Caption=Ekspor ke Excel. Lalu pada properti On Click, sisipkan expression builder sebagai berikut:

=EksporKeExcel([Caption]&[Deriv1]&[Bulan]&[Tahun],[Name],"frmResponBiayaDetail")

Target file di Excel itu adalah kombinasi dari caption (judul) dari form, control source untuk Deriv1, Bulan, dan Tahun yang ada di form itu. Form yang terbuka dapat diidentifikasi melalui control Name yang berarti frmResponBiaya, di mana di situ tidak terdapat record source. Jadi kita harus menambahkan variabel lain, "frmResponBiaya Detail" yang mempunyai record source. Record source ini yang akan diolah menjadi data yang siap diekspor ke Excel. Bila tombol OKEkspor diklik, maka data dari record source itu akan diekspor ke Excel dengan nama default sama dengan target file ditambahkan dengan ekstensi .xls yang merupakan ekstensi default dari Excel 2000. Kita bisa mengubah nama target sesuai dengan keinginan, yang penting ekstensinya harus .xls (Excel 2000).

Comments

  1. Contoh aplikasi jadinya bisa di share...?

    ReplyDelete
    Replies
    1. Mohon maaf, tidak bisa, tetapi kalau mengikuti daftar isi dari awal sd akhir seharusnya bisa di-copy dan paste. Atau, beli yang sudah jadi di toko buku Gramedia..

      Delete

Post a Comment

Posting Terpopuler

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

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

Normalisasi, Denormalisasi, dan Anomali Database