Ekspor Database ke Berbagai Format

Assalamu’alaikum Wr.Wb.

Hallo programmer, bagi anda yang biasanya menggunakan Delphi dalam pemrograman dan pembuatan aplikasi sehari-hari atau proyek anda :-) , tentunya anda menginginkan cara untuk mengekspor data anda ke dalam format tertentu yang anda inginkan sebagai backup data atau sebagai keperluan lain.

Nah, pada tulisan kali ini saya akan mencoba untuk memberikan sedikit trik untuk mengekspor tabel dalam database anda ke dalam berbagai format (saat ini hanya satu dahulu – excel, yang lainnya menyusul). Hehe…

Berikut adalah langkah-langkah untuk melakukannya:

- Buka aplikasi delphi kesayangan anda ( pada contoh ini saya impelementasikan menggunakan delphi 11)

- Buat proyek baru anda, dan simpanlah dilokasi sesuai keinginan anda sendir.

- Kemudian susun tampilan anda seperti tampilan berikut ini:

Tampilan Form Rancangan

Tampilan Form Rancangan

Biar form rancangan anda sama, anda bisa menggunakan skrip untuk form1.dfm berikut dalam mode teks:object Form1: TForm1
 Left = 0
 Top = 0
 BorderStyle = bsDialog
 Caption = 'Demo Ekspor ADO Database'
 ClientHeight = 281
 ClientWidth = 305
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'Tahoma'
 Font.Style = []
 OldCreateOrder = False
 Position = poDesktopCenter
 PixelsPerInch = 96
 TextHeight = 13
 object Label1: TLabel
 Left = 8
 Top = 8
 Width = 154
 Height = 13
 Caption = 'Lokasi Database Acces (*.mdb):'
 end
 object Label2: TLabel
 Left = 8
 Top = 53
 Width = 67
 Height = 13
 Caption = 'Daftar Tabel :'
 end
 object Label3: TLabel
 Left = 8
 Top = 198
 Width = 88
 Height = 13
 Caption = 'Simpan ke Folder :'
 end
 object Label4: TLabel
 Left = 135
 Top = 53
 Width = 67
 Height = 13
 Caption = 'Format Data :'
 end
 object edtLokasi: TEdit
 Left = 8
 Top = 27
 Width = 202
 Height = 21
 TabOrder = 0
 end
 object btnBrowse: TButton
 Left = 214
 Top = 25
 Width = 75
 Height = 25
 Caption = '&Browse'
 TabOrder = 1
 OnClick = btnBrowseClick
 end
 object ListBox1: TListBox
 Left = 8
 Top = 72
 Width = 121
 Height = 97
 ItemHeight = 13
 TabOrder = 2
 end
 object StatusEkspor: TStaticText
 Left = 8
 Top = 175
 Width = 281
 Height = 17
 AutoSize = False
 BorderStyle = sbsSunken
 Caption = 'Pilih database -> Tabel -> Format dan Ekspor'
 TabOrder = 3
 end
 object btnEkspor: TButton
 Left = 135
 Top = 248
 Width = 75
 Height = 25
 Caption = '&Ekspor'
 Default = True
 Enabled = False
 TabOrder = 4
 OnClick = btnEksporClick
 end
 object btnTutup: TButton
 Left = 216
 Top = 248
 Width = 75
 Height = 25
 Caption = '&Tutup'
 TabOrder = 5
 OnClick = btnTutupClick
 end
 object edtFolderSimpan: TEdit
 Left = 8
 Top = 213
 Width = 202
 Height = 21
 TabOrder = 6
 end
 object btnBrowseFolder: TButton
 Left = 214
 Top = 211
 Width = 75
 Height = 25
 Caption = '&Browse'
 TabOrder = 7
 OnClick = btnBrowseFolderClick
 end
 object rdbExcel: TRadioButton
 Left = 135
 Top = 72
 Width = 113
 Height = 17
 Caption = 'Excel 8.0 (97/2000)'
 Checked = True
 TabOrder = 8
 TabStop = True
 end
 object rdbHTML: TRadioButton
 Left = 135
 Top = 95
 Width = 113
 Height = 17
 Caption = 'HTML'
 Enabled = False
 TabOrder = 9
 end
 object rdbDBase: TRadioButton
 Left = 135
 Top = 118
 Width = 113
 Height = 17
 Caption = 'DBase'
 Enabled = False
 TabOrder = 10
 end
 object rdbCSV: TRadioButton
 Left = 135
 Top = 141
 Width = 113
 Height = 17
 Caption = 'CSV / TXT'
 Enabled = False
 TabOrder = 11
 end
 object OpenDialog1: TOpenDialog
 Filter = 'Access Database|*.mdb'
 Left = 248
 Top = 8
 end
 object ADOConnection1: TADOConnection
 LoginPrompt = False
 Left = 10
 Top = 242
 end
end

Untuk bisa menggunakan kode di atas, klik kanan pada form anda dan pilih menu ‘Views as text, dan anda timpa semua kode teks anda dengan kode di atas. Klik kanan kembali pada tampilan ‘Code Editor’ anda dan pilih menu ‘View as Form‘, maka anda akan melihat Tampilan Form Rancangan di atas.

Berikut adalah kode program selengkapnya (baru excel aja lho.. yang lain disabled) :

unit unEkspor;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, ADODB, FileCtrl;

type
 TForm1 = class(TForm)
 Label1: TLabel;
 edtLokasi: TEdit;
 btnBrowse: TButton;
 OpenDialog1: TOpenDialog;
 ListBox1: TListBox;
 Label2: TLabel;
 StatusEkspor: TStaticText;
 btnEkspor: TButton;
 btnTutup: TButton;
 ADOConnection1: TADOConnection;
 edtFolderSimpan: TEdit;
 btnBrowseFolder: TButton;
 Label3: TLabel;
 Label4: TLabel;
 rdbExcel: TRadioButton;
 rdbHTML: TRadioButton;
 rdbDBase: TRadioButton;
 rdbCSV: TRadioButton;
 procedure btnBrowseFolderClick(Sender: TObject);
 procedure btnEksporClick(Sender: TObject);
 procedure btnTutupClick(Sender: TObject);
 procedure btnBrowseClick(Sender: TObject);
 private
 procedure EksporExcel(NamaTabel, NamaFile : string);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.EksporExcel(NamaTabel, NamaFile: string);
var
 cmdEkspor : TADOCommand;
begin
 cmdEkspor := TADOCommand.Create(nil);
 try
 cmdEkspor.Connection := ADOConnection1;
 cmdEkspor.CommandText :=
 Format('SELECT * INTO ["Excel 8.0;Database=%s"].[%s] FROM %s',
 [NamaFile,NamaTabel,NamaTabel]);
 //ShowMessage(cmdEkspor.CommandText);
 cmdEkspor.Execute;
 finally
 cmdEkspor.Free;
 end;
end;

procedure TForm1.btnBrowseClick(Sender: TObject);
const
 CONN = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False';
begin
 if (OpenDialog1.Execute) and (OpenDialog1.FileName<>'') then
 begin
 ListBox1.Clear;
 edtLokasi.Text := OpenDialog1.FileName;
 // menghubungkan dengan database access
 if ADOConnection1.Connected then ADOConnection1.Connected := false;
 ADOConnection1.ConnectionString := Format(CONN,[edtLokasi.Text]);
 ADOConnection1.Connected := true;
 ADOConnection1.GetTableNames(ListBox1.Items);
 if ListBox1.Items.Count > 0 then
 ListBox1.ItemIndex := 0;
 btnEkspor.Enabled := true;
 end;
end;

procedure TForm1.btnBrowseFolderClick(Sender: TObject);
var
 strLokasi : string;
begin
 SelectDirectory('Pilih lokasi folder untuk menyimpan data hasil ekspor','',
 strLokasi,[sdNewUI, sdNewFolder, sdShowShares, sdValidateDir]);
 if strLokasi <> '' then
 begin
 edtFolderSimpan.Text := strLokasi;
 end;
end;

procedure TForm1.btnEksporClick(Sender: TObject);
var
 strNamaFile : string;
begin
 if Length(Trim(edtFolderSimpan.Text)) < 3 then
 begin
 MessageDlg('Maaf, anda harus mengisi atau memilih folder dengan benar!',
 mtWarning,[mbOk],0);
 exit;
 end;

 if Length(edtFolderSimpan.Text)=3 then
 strNamaFile := edtFolderSimpan.Text
 else
 strNamaFile := edtFolderSimpan.Text + '\';
 strNamaFile := strNamaFile + ListBox1.Items[ListBox1.ItemIndex];

 if ListBox1.ItemIndex > -1 then
 begin
 if rdbExcel.Checked then
 begin
 EksporExcel(ListBox1.Items[ListBox1.ItemIndex],strNamaFile + '.xls');
 MessageDlg('Data sudah berhasil di ekspor ke format EXCEL 97/2000 ' +
 'dalam folder ' + QuotedStr(strNamaFile), mtInformation,
 [mbOk], 0 );
 end;
 // untuk html, dbase, dan csv/txt untuk tulisan berikutnya
 end;
end;

procedure TForm1.btnTutupClick(Sender: TObject);
begin
 Close;
end;

end.

Kemudian anda jalankan program anda, dan anda akan melihat tampilan berikut:

exado_run_main

xpado_browse_folder

xpado_info

xpado_xls

Bersambung……

Moga bermanfaat, Wassalam.


3 Tanggapan ke “Ekspor Database ke Berbagai Format”

  1. kartunmania Says:

    Ngintip aja Bang, nkali aja suatu saat bermanfaat…

    Salam Kartun,

  2. Ekspor Database ke Berbagai Format 2 « Dedy Gunanto’s Website Says:

    [...] ini adalah lanjutan dari artikel Ekspor Database ke Berbagai Format. Kali ini kita akan membuat prosedur untuk mengekspor table ke dalam format [...]

  3. Heru Says:

    Ass. Wr. Wb

    Mas Dedy, Bisa minta tolong bagaimana kalo untuk ekspor dari file database ke excel sedangkan file databasenya dengan ekstensi bebas, tetapi bukan yang pada umumnya “*.mdb” tetapi misal “*.dja”, dan bagaimana caranya?

    Terima Kasih banyak sebelumnya..

    Sukses terus buat mas Dedy..
    Bagus Mas Ilmunya..

    Heru


Tinggalkan Balasan