Advertisement
rikokurniawan

Lat 8 Inputan Database MS Acces 2003 + Cetak Laporan Ke Exce

Nov 29th, 2012
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 7.17 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, Comobj;
  8.   //Comobj digunakan untuk memanggil modul agar bisa nyetak ke excel
  9. type
  10.   TForm1 = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Label3: TLabel;
  14.     Edit1: TEdit;
  15.     Edit2: TEdit;
  16.     Edit3: TEdit;
  17.     GroupBox1: TGroupBox;
  18.     Label4: TLabel;
  19.     Edit4: TEdit;
  20.     Button1: TButton;
  21.     DataSource1: TDataSource;
  22.     DBGrid1: TDBGrid;
  23.     ADOConnection1: TADOConnection;
  24.     ADOQuery1: TADOQuery;
  25.     Button2: TButton;
  26.     Button3: TButton;
  27.     Button4: TButton;
  28.     Button5: TButton;
  29.     Button6: TButton;
  30.     Button7: TButton;
  31.     ADOQuery2: TADOQuery;
  32.     procedure Button2Click(Sender: TObject);
  33.     procedure FormShow(Sender: TObject);
  34.     procedure Button5Click(Sender: TObject);
  35.     procedure Button3Click(Sender: TObject);
  36.     procedure Edit1Change(Sender: TObject);
  37.     procedure Button4Click(Sender: TObject);
  38.     procedure DBGrid1CellClick(Column: TColumn);
  39.     procedure Edit4Change(Sender: TObject);
  40.     procedure Button1Click(Sender: TObject);
  41.     procedure Button7Click(Sender: TObject);
  42.     procedure Button6Click(Sender: TObject);
  43.   private
  44.     { Private declarations }
  45.     XlApp, XlBook, XlSheet, XlSheets, Range,chat : Variant; // Excel 97
  46.     WApp, Word : Variant; // Word 97
  47.   public
  48.     { Public declarations }
  49.     procedure bersih;
  50.     procedure segar;
  51.     procedure konek;
  52.   end;
  53.  
  54. var
  55.   Form1: TForm1;
  56.  
  57. implementation
  58.  
  59. {$R *.dfm}
  60.  
  61. procedure TForm1.bersih;
  62. begin
  63.   Edit1.Clear;
  64.   Edit2.Clear;
  65.   Edit3.Clear;
  66.   Edit4.Clear;
  67. end;
  68.  
  69. Procedure TForm1.konek;
  70. Var a:String;
  71. Begin
  72.   //Pemanggilan Database Secara Portable tanpa terikat directory
  73.   //Maksudnya tanpa perlu konekkan lagi pada ADOConnection1
  74.   GetDir(0,a);
  75.   With ADOConnection1 Do Begin
  76.     ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+a+'\STMIK.mdb;Extended Properties="";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1';
  77.     LoginPrompt:=False;
  78.     Connected:=true;
  79.     ConnectionTimeout:=15;
  80.     ConnectOptions:=coConnectUnspecified;
  81.     CursorLocation:=clUseClient;
  82.     Mode:=cmShareDenyNone;
  83.   End;
  84.   ADOQuery1.Active;
  85. End;
  86.  
  87. procedure TForm1.segar;
  88. begin
  89.   AdoQuery1.SQL.Clear;
  90.   AdoQuery1.sql.Text:='SELECT * FROM mhs ORDER BY Nama';
  91.   AdoQuery1.Open;
  92. end;
  93.  
  94. procedure TForm1.Button1Click(Sender: TObject);
  95. begin
  96.   Edit4.Clear;
  97. end;
  98.  
  99. procedure TForm1.Button2Click(Sender: TObject);
  100. begin
  101.   if Edit1.Text='' then begin
  102.     ShowMessage('Nim Kosong, Silahkan Isi dahulu');
  103.     Edit1.SetFocus;
  104.   end
  105.   else if Length(Edit1.Text)<13 then begin
  106.     ShowMessage('Nim Belum Lengkap, Silahkan Isi dahulu');
  107.     Edit1.SetFocus;
  108.   end
  109.   else Begin
  110.     AdoQuery2.SQL.Clear;
  111.     AdoQuery2.SQL.Text:='Insert Into mhs(NIm,Nama,Alamat) Values('+
  112.     QuotedStr(Edit1.Text)+','+QuotedStr(Edit2.Text)+','+QuotedStr(Edit3.Text)+')';
  113.     AdoQuery2.ExecSQL;
  114.  
  115.     Bersih;
  116.     segar;
  117.   End;
  118. end;
  119.  
  120. procedure TForm1.Button3Click(Sender: TObject);
  121. begin
  122. if Edit1.Text='' then begin
  123.     ShowMessage('Nim Kosong, Silahkan Isi dahulu');
  124.     Edit1.SetFocus;
  125.   end
  126.   else if Length(Edit1.Text)<13 then begin
  127.     ShowMessage('Nim Belum Lengkap, Silahkan Isi dahulu');
  128.     Edit1.SetFocus;
  129.   end
  130.   else Begin
  131.     AdoQuery2.SQL.Clear;
  132.     AdoQuery2.SQL.Text:='UPDATE mhs SET Nama='+
  133.     QuotedStr(Edit2.Text)+', Alamat='+QuotedStr(Edit3.Text)+' WHERE NIm='+
  134.     QuotedStr(Edit1.Text)+'';
  135.     AdoQuery2.ExecSQL;
  136.  
  137.     Bersih;
  138.     segar;
  139.   End;
  140. end;
  141.  
  142. procedure TForm1.Button4Click(Sender: TObject);
  143. begin
  144. if Edit1.Text='' then begin
  145.     ShowMessage('Nim Kosong, Silahkan Isi dahulu');
  146.     Edit1.SetFocus;
  147.   end
  148.   else if Length(Edit1.Text)<13 then begin
  149.     ShowMessage('Nim Belum Lengkap, Silahkan Isi dahulu');
  150.     Edit1.SetFocus;
  151.   end
  152.   else Begin
  153.     AdoQuery2.SQL.Clear;
  154.     AdoQuery2.SQL.Text:='DELETE FROM mhs WHERE NIm='+QuotedStr(Edit1.Text)+'';
  155.     AdoQuery2.ExecSQL;
  156.  
  157.     Bersih;
  158.     segar;
  159.   End;
  160. end;
  161.  
  162. procedure TForm1.Button5Click(Sender: TObject);
  163. begin
  164.   bersih;
  165.   Segar;
  166. end;
  167.  
  168. procedure TForm1.DBGrid1CellClick(Column: TColumn);
  169. begin
  170.   if Not AdoQuery1.Eof  then begin
  171.     Edit1.Text:=AdoQuery1.FieldValues['NIm'];
  172.     Edit2.Text:=AdoQuery1.FieldValues['Nama'];
  173.     Edit3.Text:=AdoQuery1.FieldValues['Alamat'];
  174.   end;
  175. end;
  176.  
  177. procedure TForm1.Edit1Change(Sender: TObject);
  178. begin
  179. if Edit1.Text <> '' then Begin
  180.   AdoQuery1.SQL.Clear;
  181.   AdoQuery1.sql.Text:='SELECT * FROM mhs WHERE NIm='+QuotedStr(Edit1.Text);
  182.   AdoQuery1.Open;
  183.  
  184.   if Not AdoQuery1.Eof  then begin
  185.     Edit2.Text:=AdoQuery1.FieldValues['Nama'];
  186.     Edit3.Text:=AdoQuery1.FieldValues['Alamat'];
  187.   end;
  188. End;
  189.  
  190. end;
  191.  
  192. procedure TForm1.Edit4Change(Sender: TObject);
  193. begin
  194. if Edit4.Text='' then begin
  195.   //Edit4.SetFocus;
  196. end;
  197.  
  198. if Edit4.Text<>'' then Begin
  199.  
  200.   AdoQuery1.SQL.Clear;
  201.   ADOQuery1.SQL.Add('SELECT * FROM mhs WHERE Nama like "'+Edit4.Text+'%" Order By Nama');
  202.   AdoQuery1.Open;
  203.  
  204.   if Not AdoQuery1.Eof  then begin
  205.     Edit2.Text:=AdoQuery1.FieldValues['Nama'];
  206.     Edit3.Text:=AdoQuery1.FieldValues['Alamat'];
  207.   end;
  208.  
  209. end;
  210. end;
  211.  
  212. procedure TForm1.FormShow(Sender: TObject);
  213. begin
  214.   konek; //Procedure Konek dipanggil
  215.   bersih; //Procedure Bersih
  216.   segar; //Procedure Segar
  217. end;
  218.  
  219. procedure TForm1.Button7Click(Sender: TObject);
  220. begin
  221.   Close;
  222. end;
  223.  
  224. procedure TForm1.Button6Click(Sender: TObject);
  225. var i,x:integer;
  226.     Sfile:string;
  227. begin
  228. // buka excel
  229. XlApp := CreateOleObject('Excel.Application');
  230. // tambahkan workbook
  231. XlBook := XlApp.WorkBooks.Add;
  232. // tambahkan worksheet
  233. XlSheet := XlBook.worksheets.add;
  234. //untuk mengubah lebar kolom bisa dilakukan dengan cara dibawah ini
  235. XlSheet.Cells[1,1].ColumnWidth := 8;
  236. XlSheet.Cells[1,2].ColumnWidth := 9;
  237. XlSheet.Cells[1,3].ColumnWidth := 11;
  238. XlSheet.Cells[1,4].ColumnWidth := 10;
  239. XlSheet.Cells[1,5].ColumnWidth := 10;
  240. XlSheet.Cells[1,6].ColumnWidth := 14;
  241. XlSheet.Cells[1,7].ColumnWidth := 19;
  242. XlSheet.Cells[1,8].ColumnWidth := 16;
  243. XlSheet.Cells[1,9].ColumnWidth := 16;
  244. XlSheet.Cells[1,10].ColumnWidth := 18;
  245. //cetak judul header menual
  246. XlSheet.Cells[1,1].Value:='LAPORAN TRANSAKSI KELUAR';
  247. //cetak header field dari dbgrid
  248. for i:=0 to dbgrid1.FieldCount-1 do
  249. begin
  250. XlSheet.cells[3,i+1].value:=dbgrid1.columns[i].Title.Caption;
  251. end;
  252. // transfer data ke excel
  253. ADOQuery1.First;
  254. x:=1;
  255. while not ADOQuery1.Eof do
  256. begin
  257. for i:=0 to dbgrid1.FieldCount-1 do
  258. begin
  259. XlSheet.cells[3+x,i+1].value:=dbgrid1.Fields[i].Text;
  260. end;
  261. ADOQuery1.Next;
  262. inc(x);
  263. end;
  264.  
  265. //menampilkan aplikasi //XlApp.visible:=true;
  266.  
  267. //script dibawah ini untuk dialog disimpan atau ditampilkan
  268.  
  269.   if MessageDlg('Apakah hasil export ditampilkan..?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  270.   begin
  271.     MessageDlg('Hasil Ditampilkan', mtInformation,
  272.       [mbOk], 0);
  273.        XlApp.visible:=true;
  274.   end
  275.   else
  276.   //simpan ke file
  277.   begin
  278.     Sfile:= InputBox('Nama File', 'hasil export', 'd:\hasil.xls');
  279.     XlApp.ActiveWorkbook.SaveAs(sfile);
  280.     XlApp.visible:=true;
  281.   end
  282. end;
  283.  
  284. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement