ReadMe Project: MS Access, MS Excel, Raize Component dan Report Builder

Overview Project

Oleh Eko Indriyawan
Membuat Aplikasi berbasis Data(Database) dengan menggunakan bahasa pemrograman Delphi tidaklah susah atau sulit yang seperti kita bayangkan. Dan sering kali budaya manusia kita adalah selalu merasa takut, minder atau tidak percaya diri ketika mendengar istilah yang dianggap sangat asing dan terkesan Modern(dibaca: tingkat tinggi). Sekalipun begitu, akan tetap saja terasa susah kalau memang belum merasa familiar dan nyaman dengan hal tersebut.

Pada Dokumen ini akan dijelaskan kepada Anda(dibaca: Delphier) tentang banyak hal dan wawasan seputar bagaimana cara bakerja membuat Project Delphi 7 dengan menggunakan Database MS Access dan MS Excel.

Database MS Access dicontoh Project ini akan difokuskan untuk penyimpanan Data Aktif. Sedangkan MS Excel digunakan untuk penyimpanan Data Pasif.

Kemudian didalam Project ini juga akan dilengkapi dengan Command-command Standard yaitu:

  • New (Tambah)
  • Edit
  • Delete (Hapus)
  • Refresh
  • Save (Simpan)
  • Ulang
  • Print (Cetak)
  • Export
  • Import


Pada hampir setiap menu seperti Programer, Klien, Proyek dan lain-lain selalu dilengkapi dengan command-command diatas. Tentunya Anda bisa mengembangkan lagi sesuai dengan kebutuhan Aplikasi yang ingin anda ciptakan.

Contoh Project ini cukup kompleks dan bisa menjadi pengantar yang cukup bagi Rekan-rekan Delphier di seluruh Indonesia untuk dapat membuat sebuah program Aplikasi berbasiskan Data.

Fitur-fitur Project

Project ini dilengkapi dengan fitur-fitur yang cukup umum dan penting dan menjadi syarat umum dari sebuah program Aplikasi.

  • Fitur Pengolahan Data, meliputi bagian Tambah, Edit, Hapus, Refresh
  • Fitur Export/Import Data
  • Fitur Report Cetak(Print)

Tentunya contoh ini bisa anda kembangkan lebih untuk memunculkan fitur-fitur yang lain.

Komponen Pihak Ketiga(Third Party) yang digunakan didalam Project

Berikut ini adalah daftar komponen yang digunakan dalam contoh Project ini:

  • Raize Component, Raize Software
  • Report Builder, Digital Metaphors Corporation

Anda bisa menambahkan dan mengkombinasikan dengan fitur yang lain dan sesuaikan dengan kebutuhan.

Komponen Standard yang digunakan didalam Project

Didalam project ini ditunjukkan tentang penggunakan komponen penting seperti:

  • TActionList dengan TAction-nya
  • TImageList
  • TADOConnection
  • TADOStoredProc
  • TToolBar
  • TPopUpMenu

TActionList

Komponen ini digunakan untuk mengelola TAction. TAction adalah sebuah komponen yang digunakan untuk menangani suatu proses tertentu. TAction sendiri bisa diasosiasikan kepada kontrol-kontrol seperti TBUtton, TToolButton dan atau turunannya. Selain untuk kontrol juga bisa diasosiasikan dengan TMenuItem untuk keperluan PopUp.

Komponen TAction memiliki sebuah property ImageIndex. Property ini digunakan untuk mengontrol index icon dari sebuah TToolButton. Index itu nanti mengacu kepada komponen TImageList sebagai container daripada Icon.

TImageList

Komponen ini digunakan untuk mengelola icon-icon yang nantinya integrasikan dengan komponen TToolBar.

Selain komponen diatas juga digunakan komponen standard seperti TButton, TEdit dan TLabel.

TADOConnection

Komponen ini digunakan untuk menghubungkan komponen Dataset ke Database engine. Komponen dataset disini adalah TADOStoredProc.

TADOStoredProc

Komponen ini digunakan untuk mengakses query yang ada didalam database MS Access. Perhatikan pada bagian Hal penting untuk mendapatkan informasi lebih detail tentang cara penggunaan dari komponen TADOStoredProc.

TToolBar

Komponen ini digunakan untuk mengelola tombol-tombol toolbutton. Tombol-tombol ini sangat unik karena bentuknya yang mini dan lebih informatif ketika divisualisasikan dengan sebuah icon.

TPopUpMenu

Komponen ini digunakan untuk menambah kesan profesional, dan juga informasi kemudahan dalam menggunakan aplikasi seperti informasi Shortcut untuk command-command tertentu.

Query-Query dalam database MS Access

Seperti telah saya ulas pada dokumen sebelumnya tentang penggunaan Stored Procedure untuk menggantikan peran query diaplikasi client, bahwa database MS Access juga bisa diimplementasikan penggunaan stored procedure, hanya saja nama didalam database MS Access menyebut Stored Procedure dengan object Query.

Berikut ini contoh-contoh query yang bisa anda buat didalam database MS Access dan sudah diterapkan dan jalan pada contoh project https://www.facebook.com/groups/kppdi/10151642762050850.

  • Query Select
  • Query Insert
  • Query Delete
  • Query Update

Penjelasan Project

Project ini dikembangkan masih cukup sederhana, tapi memiliki fungsi yang standard seperti tindahakan penambahan data, pengeditan data, penghapusan data hingga pencarian data.

Dengan menggunakan Database Engine MS Access 2003, anda bisa melihat bagaimana project ini bisa menghubungkan sebuah database dengan menggunakan Delphi.

Pada bagian versi pertama difokuskan pada proses standard dan belum dilengkapi dengan fitur tambahan seperti popup menu dan shortcut.

Hal Penting

Berikut ini adalah hal-hal penting yang harus diperhatikan terkait pembuatan aplikasi database dengan menggunakan database ms access dan Delphi.

  • Berikan nilai property Prepared untuk setiap penggunaan komponen TADOStoredProc dengan nilai True. Tujuan daripada tindakan ini adalah untuk memastikan nilai-nilai parameter yang dimasukkan adalah nilai yang terbaru. Kalau tindakan ini tidak anda lakukan, maka ketika anda mencoba memberikan nilai pada parameter-parameter yang dimiliki oleh komponen TADOStoredProc tetap mengacu kepada nilai yang pertama kali ditentukan. Mungkin bagi yang belum pernah tahu penanganan kasus ini akah terasa aneh dan bingung. Oleh karena itu, mohon diperhatikan dengan betul isu ini ketika kelak bekerja dengan menggunakan query yang dimiliki oleh database MS Access.
  • Kemudian terkait hal-hal didalam database MS Access. Kita sering kali membuat query yang berparameter dengan mengawali tanda ":". Tentu kalau kita membuat parameter dengan cara ini akan membuat size dari parameter yang susah untuk diprediksi secara pasti. Ada baiknya setiap kali membuat query yang memiliki parameter, Anda deklarasikan parameter tersebut. Keuntungannya adalah anda bisa menggunakan parameter tersebut berkali-kali cukup sekali deklarasi.

FAQ

Berikut ini ditambahkan FAQ untuk membuat pemahaman yang lebih dalam dan semoga dapat bermanfaat bagi rekan-rekan Delphier yang mau dan akan belajar membuat aplikasi dengan menggunakan Database MS Access dan Delphi.

  • Apakah Nama Parameter pada komponen TADOStoredProc harus sama persis dengan nama parameter yang dideklarasikan pada Query didalam database MS Access?

Tidak. Nama parameter tidak harus sama persis, akan tetapi tipe data diharapkan harus sama persis atau se-tipe dengan parameternya. Kemudian anda pastikan juga jumlah parameter harus sama agar query dapat dijalankan dengan sebagaimana mestinya.

  • Bagaimana caranya supaya konfigurasi koneksi database MS Access bisa dinamis?

Untuk bisa dinamis, anda cukup menentukan nama database ms access saja dan pastikan untuk file tersebut diletakkan di-dalam sebuah folder yang menjadi folder system atau folder dimana file aplikasi itu berada atau ditempatkan.

  • Apakah saya harus menentukan property Prepared pada komponen TADOStoredProc dengan nilai True?

Ya. Anda harus melakukan ini untuk memastikan nilai parameter adalah nilai yang terbaru. Kalau anda tidak lakukan tindakan ini akan menyebabkan data tidak actual atau tidak up to date sekalipun anda coba untuk isikan dengan nilai yang baru.

Sehingga ini menjadi bagian yang sangat penting. Kalau anda bekerja dengan cara yang sama untuk database MS SQL Server tidak perlu melakukan tindakan ini. Sehingga ini tolong diperhatikan betul dan selalu diingat-ingat ketika bekerja dengan menggunakan database MS Access.

  • Ketika kita bekerja dengan menggunakan aplikasi MS Access, saat kita menggunakan fitur LIKE, kita gunakan karakter *. Apakah didelphi juga bisa melakukan dengan menggunakan karakter tersebut?

Betul. Kalau kita bekerja dengan menggunakan aplikasi Database MS Access. Kita akan menggunakan karakter * saat kita gunakan fitur LIKE. Didelphi kita tidak menggunakan karakter itu. Karakter yang digunakan tetap sama seperti ketika bekerja dengan menggunakan database MS SQL Server ataupun database engine yang lain yaitu %.

Dengan demikian, anda tidak perlu mengirimkan karakter * dan menggantikannya dengan %. Pada contoh project yang dicontohkan disini sudah diberikan contoh penggunaanya dengan menggunakan karakter %.

...
procedure TForm2.PData04Execute(Sender: TObject);
begin
with Form1,SPSelect do
  begin
  {
  Disable Control untuk menghindari efek kedip
  }
  DisableControls;
  {
  Close DataSet
  }
  Close;
  {
  Menentukan Parameter Input
  }
  Parameters[0].Value := '%'+IN010101.Text+'%';
  {
  Open DataSet
  }
  Open;
  {
  Enable Control
  }
  EnableControls;
  end;
end;
...

  • Apakah kita bisa membuat Parameter dengan cara yang lebih mudah dan nyaman setiap kali menambahkan atau mengedit query pada database MS Access?

Bisa. Sangat membosankan memang...kalau kita mendeklarasikan Parameter dan bahkan mengubah-ubah urutan secara manual melalui script. Aplikasi dari database MS Access sudah menyediakan fitur untuk menambahkan parameter dengan menggunakan GUI yang cukup mudah sekali untuk digunakan dalam penambahan, pengeditan dan bahkan mengurutkan sebuah parameter agar lebih mudah untuk dikelola dan digunakan.

Anda bisa memanfaatkan fitur ketika query yang anda buka ditampilkan dengan pane Design View. Silahkan buruan manfaatkan fitur ini jika anda belum pernah mengetahui dan atau mencoba sebelumnya.

  • Kenapa saya tidak bisa mengkoneksikan TADOConnection ke MS Excel?

Memang perlakukan untuk TADOConnection terhadap MS Access dan MS Excel berbeda. Jika ketika mengkoneksikan ke MS Access berhasil kemudian memutuskan koneksi dan melakukan koneksi ulang masih bisa dilakukan cukup memberikan nilai Toggle dengan True dan False pada bagian property Connected, maka perlakuan tersebut ternyata tidak bisa diterapkan kepada MS Excel.

Begitu kita berhasil melakukan koneksi ke MS Excel dengan menggunakan TADOConnection, kemudian kita memutuskan koneksinya dan dilanjutkan dengan melakukan koneksi lagi, maka kita tidak dapat melakukannya layaknya ketika mengkoneksikan MS Access.

Solusi untuk isu diatas adalah Anda harus menentukan konfigurasi secara manual untuk Field "Extended Properties" dengan nilai "Excel 8.0". Apabila tindakan itu tidak anda lakukan, maka anda tidak bisa melakukan koneksi dengan sukses.

Kemudian kalau anda menginginkan trik yang cukup bagus agar memiliki kesamaan karakter dengan MS Access, silahkan anda ikuti langkah berikut ini:

  1. Silahkan anda koneksikan TADOConnection ke database MS Excel.
  2. Kemudian anda lakukan copy ConnectionString dari komponen TADOConnection setelah berhasil dikoneksikan dengan Database MS Excel.
  3. Setelah itu Anda putuskan koneksinya
  4. Paste-kan ConnectionString tadi ke property ConnectionString.
  5. Lanjutkan dengan menghubungkan kembali TADOConnection ke Database MS Excel.
  6. Jika berhasil, maka anda tidak perlu lagi untuk selalu menentukan field "Extended Properties" berikut isi-nya.

  • Kita tahu bahwa melalui Aplikasi yang kita buat dengan Delphi tidak bisa melakukan penghapusan Data yang ada didalam Sheet dari Database MS Excel. Bagaimana cara mengatasinya ketika ingin melakukan proses Export agar tidak terjadi duplikasi Data?

Betul sekali. Memang tidak bisa melakukan proses penghapusan Data atau Record yang ada didalam suatu Sheet yang dimiliki oleh Database MS Excel. Untuk itu, langkah yang bijak dalam melakukan proses Export data ke excel adalah dengan cara melakukan pengeditan data.

Dengan mengacu contoh yang ada didalam project ini, proses export data dilakukan dengan mengutamakan proses edit terlebih dahulu. Apabila ada data lebih, maka baru dilanjutkan dengan melakukan proses insert data baru.

Semoga pendekatan ini bisa dijadikan untuk solusi sementara sambil menunggu solusi lain yang lebih baik dan praktis.

  • Bagaimana cara cepat membuat Query di MS Access? Apakah kita bisa melakukan Copy dan Paste untuk query-query yang mirip?

Ya. Anda bisa melakukan duplikasi Query dengan menggunakan command(dibaca: perintah) Copy dan Paste terhadap query-query yang anda anggap mirip untuk menghemat waktu pembuatan query.

Cara melakukannya bisa diikuti dari langkah-langkah berikut ini:

  1. Pilih salah satu query
  2. Tekan tombol CTRL + C untuk melakukan Copy
  3. Kemudian anda lanjutkan dengan menekan tombol CTRL + V untuk melakukan Paste
  4. Setelah itu anda tentukan nama. Secara default, nama query yang baru akan mengacu nama query yang diduplikasi dan diawali dengan Copy Of
  5. Selesai

Versi Project

Berikut ini adalah daftar versi dari Project yang bisa anda bandingkan sendiri dari versi pertama hingga versi terbaru:


  1. Versi 01
  2. Versi 02
  3. Versi 03
  4. Versi 03 Raize Component
  5. Versi 04
  6. Versi 04 Raize Component
  7. Versi 05 Raize Component
  8. Versi 06 Raize Component - Report Builder
  9. Versi 07 Raize Component - Report Builder

Histori

Versi 07 Raize Component - Report Builder:

  • Ditambahkan file Excel "Data"
  • Ditambahkan fitur Export Data Programer ke Excel
  • Ditambahkan fitur Import Data Programer ke Excel
  • Ditambahkan fitur Clear Data Programer

Versi 06 Raize Component - Report Builder:

  • Ditambahkan komponen Report Builder
  • Ditambahkan Action Print untuk mencetak Laporan Proyek

Versi 05 Raize Component:

  • Menambahkan Form as Module untuk Manager, Proyek Baru, Proyek Data
  • Ditambahkan Action Menu Manager
  • Ditambahkan Action Menu Proyek Baru, Proyek Data
  • Ditambahkan tabel Manager dan Proyek Baru, Proyek Data
  • Ditambahkan Query-query Manager dan Proyek Baru, Proyek Data
  • Ditambahkan Action-action Manager dan Proyek Baru, Proyek Data
  • Ditambahkan PopUpMenu Manager dan Proyek Baru, Proyek Data
  • Ditampilkan kursor HandPoint pada tombol-tombol agar memberikan kesan yang lebih mantab.
  • Ditambahkan PathBar pada semua Halaman

Version 04 Raize Component:

  • Mengganti nama Unit2 menjadi UModuleFormUtama
  • Mengganti nama Form Form2 menjadi ModuleFormUtama
  • Menambahkan Form as Module untuk Klien, Programer dan Proyek
  • Ditambahkan Action Menu Programer
  • Ditambahkan Action Menu Proyek
  • Ditambahkan Action Menu Klien
  • Ditambahkan GroupBar
  • Perapian Nama-nama Komponen
  • Update Komentar
  • Bug: Waktu menekan tombol ulang ada input yang belum kosong
  • Pada saat refresh record kembali fokus ke posisi sebelum direfresh
  • Ditambahkan tabel Klien dan Proyek
  • Ditambahkan Query-query Klien dan Proyek
  • Ditambahkan Action-action Klien dan Proyek
  • Ditambahkan PopUpMenu Klien dan Proyek

Version 04

  • Ditambahkan Action Kembali lengkap dengan ShortCut Esc. Penambahan ini untuk membuat user merasa nyaman ketika ingin membatalkan proses pengeditan atau penambahan data baru.
  • Pada PopUpMenu TabSheet Input ditambahkan MenuItem untuk Action Kembali

Version 03 Raize Component:

  • Pengubahan Komponen Standard dari Version 03 dengan menggunakan komponen Raize Component.
  • Diaktifkan fitur RowSelect. Jadi ketika data di Grid dipilih akan terpilih untuk satu baris dan tidak satu cell saja.
  • PageControl tidak ditampilkan alias disembunyikan
  • Control-Control seperti TEdit dibuat menjadi terlihat lebih halus dan elegan dengan tampilan Frame.
  • Ditambahkan Action Kembali lengkap dengan ShortCut Esc. Penambahan ini untuk membuat user merasa nyaman ketika ingin membatalkan proses pengeditan atau penambahan data baru.
  • Pada PopUpMenu TabSheet Input ditambahkan MenuItem untuk Action Kembali

Version 03:

  • Mengubah Nama TabelBarang menjadi TabelProgramer
  • Ditambahkan kolom Perusahaan, Jabatan, Kota, Propinsi, dan Negara.
  • Mengubah nama-nama Query/StoredProcedure
  • Update Query/Stored Procedure
  • Perapian nama-nama komponen
  • Ditambahkan informasi hint melalui StatusBar dengan menggunakan event OnMouseMove
  • Ditambahkan procedure AfterConstruction pada bagian Form as Module untuk melakukan refresh data ketika aplikasi dijalankan.
  • Ditambahkan procedure AfterConstruction pada bagian Form Utama untuk mengaktifkan TabSheet Data saat ketika Aplikasi pertama dijalankan. Ini ditujukan untuk mengatasi ketika kita lupa mengaktifkan TabSheet Data ketika kita sedang membuka TabSheet yang lain. Sehingga tindakan ini akan membuat TabSheet selalu terlihat saat aplikasi dijalankan.
  • Diaktifkan fitur Hint pada semua komponen ToolBar

Version 02:

  • Salah Caption pada Action PData03 yang awalnya Delete menjadi Hapus
  • Salah Caption pada Action PData04 yang awalnya Hapus menjadi Refresh
  • Ditambahkan Shortcut untuk semua Action
  • Ditambahkan PopUpMenu untuk TabSheet Data, Input dan Grid

Version 01:

  • Initial version

Contributor
Berikut ini adalah daftar kontributor untuk artikel atau dokumen Membuat Aplikasi Database MS Access Dengan Delphi 7 bisa di download disini

Postingan populer dari blog ini

Apa itu SMS Gateway ??

Perintah SQL "Union"

Awas Penipuan Penjualan Online