Arsip: Import file excel dengan format date ke access

 
user image
more 15 years ago

msih_bljaran

Helllppp.........!!!! Ane lagi buat SI nih, yg didalemnya tuh import file excell (*.xls) ke delphi. Ane pake OleObject. Nah, salah satu datanya ada yg format tanggal (date) yg di excel. Pas waktu import file, ada pesen kayak gini --> "cannot convert date to string". Plsss,,.... Gmn ya.. Btw ane pake database Access. Klo misal udah pernah dibahas, mohon dirujuk linknya.
user image
more 15 years ago

msih_bljaran

Kalo import ke SQL Server bisa, tapi kalo ke Access gak bisa.
user image
more 15 years ago

Wong_Jowo

blog data tanggal yang ada di excel, trus tekan ctrl+1 Set category DATE yang ada di Tab Number. pilih tipe tanggalnya, dan klik OK. Setelah itu, cek data apakah ada tanggal yang tidak sesuai ketentuan tipe DATE yang dipilih. contohnya tanggal 31 Febuari. tentu saja ga ada. ato tanggal 12 bulan 17. Kalau emang ketentuan yang ada di excel udah bener,, pasti bisa masuk dech
user image
more 15 years ago

elva_ivana

Coba posting skrip yg telah di buat disini, biar bantunya bisa lebih :D afdol :D
user image
more 15 years ago

safari

Menurutku pada dasarnya di Import dan Export dari dan ke bisa dilakukan. Tapi Khusus Type Date memang memelukan perlakuan khusus deh, Silahkan dicoba dan diperhatikan Format tanggal Standart dari masing-masing Database, aku kasih contoh ya. Kalo di MySQL format input Tanggalnya adalah YYYY-mm-dd. YYYY => tahun 4 Digit mm => Bulan 2 Digit. dd => Tanggal 2 Digit. Contoh : 2009-12-25 Selama menginput tanggal walau sumbernya berupa string dan di kirim ke MySQL dengan Type Date kita Formatkan seperti itu pasti masuk. Nah, bagaimana menginput dari data lain? Caranya: 1. Cek satu persatu yang akan diambil untuk dikirim, Kalo String => lewat, Integer=> Lewat, kalo Tanggal baru gunakan perlakuan khusus. 2. Bila ketemu sumber bertype Date dan akan dikirim ke Field bertype Date, kita lakukan Parsing untuk kita sesuaikan dengan Model input Data Tujuan. 3. Lakukan Query pengiriman sesuai dengan Data Tujuan Contoh Data Sumber: Nomor | Nama | Tgl_Lahir 1 | Agus | 23-02-1975 dikirim ke database MySQL Menjadi
insert into data (Nomor, Nama, Tgl_Lahir) VALUES("1","Agus","1975-02-23")
Mudah2an membantu.
user image
more 15 years ago

msih_bljaran

Oke2, script segera ane posting.
user image
more 15 years ago

msih_bljaran

Nah ini source codenya function import(tab: TADOQuary; SFile: String): Boolean; function Tf_utama.import(tab: TADOQuery; SFile: String): Boolean; const xlCellTypeLastCell = $0000000B; var XLApp, Sheet: OLEVariant; tgl : String; x, y, r, no, k : Integer; label 1; begin Result := False; XLApp := CreateOleObject('Excel.Application'); try XLApp.Visible:=False; //XLApp.Visible := False; XLApp.Workbooks.Open(SFile); Sheet := XLApp.Workbooks[ExtractFileName(SFile)].WorkSheets[1]; Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; x := XLApp.ActiveCell.Row; y := XLApp.ActiveCell.Column; k:=1; //x := 2; //nomor baris excel repeat if tab.IsEmpty then no:=1 else if not tab.IsEmpty then begin tab.Last; no:=tab.Fields[0].AsInteger; no:=no+1; end; tab.Append; tab.Fields[0].AsInteger:=no; tab.Fields[1].AsString:='im'+IntToStr(no); tab.FieldByName('tanggal').AsString:=XLApp.Cells.Item[k, 1].Value; ----> Nah ini nih yg bikin masalah tab.FieldByName('NN1').AsString:= XLApp.Cells.Item[k, 2].Value; tab.FieldByName('no_faktur').AsString:= XLApp.Cells.Item[k, 3].Value; tab.FieldByName('nama_customer').AsString:= XLApp.Cells.Item[k, 4].Value; tab.FieldByName('kota').AsString:= XLApp.Cells.Item[k, 5].Value; tab.FieldByName('bags').AsString:= XLApp.Cells.Item[k, 6].Value; tab.FieldByName('nama_barang').AsString:= XLApp.Cells.Item[k, 7].Value; tab.FieldByName('berat').AsString:= XLApp.Cells.Item[k, 8].Value; tab.FieldByName('jumlah_harga').AsString:= XLApp.Cells.Item[k, 9].Value; tab.FieldByName('NN3').AsString:= XLApp.Cells.Item[k, 10].Value; tab.FieldByName('NN4').AsString:= XLApp.Cells.Item[k, 11].Value; tab.FieldByName('harga_satuan').AsString:= XLApp.Cells.Item[k, 12].Value; tab.Post; k:=k+1; until XLApp.Cells.Item[k, 1].Value=''; ShowMessage('File telah terimport.'); 1: XLApp.Workbooks.Close; finally if not VarIsEmpty(XLApp) then begin XLApp.Workbooks.Close; XLApp.Quit; XLAPP := Unassigned; Sheet := Unassigned; Result := True; end; end; end; ------------------------------------------ NB : Source yg ane kasih tanda panah tuh udah pernah coba jadi AsDateTime --> tab.FieldByName('tanggal').AsDateTime=XLApp. ......... bla bla @wongjowo cara yg itu udah aq coba tapi tetep belum bisa mas. Aq sangat berharap bantuan rekan2. Trmakasih.....
user image
more 15 years ago

safari

AKu Ubah Menjadi :
function Tf_utama.import(tab: TADOQuery; SFile: String): Boolean; const xlCellTypeLastCell = $0000000B; var XLApp, Sheet: OLEVariant; tgl : String; x, y, r, no, k : Integer; label 1; begin Result := False; XLApp := CreateOleObject('Excel.Application'); try XLApp.Visible:=False; //XLApp.Visible := False; XLApp.Workbooks.Open(SFile); Sheet := XLApp.Workbooks[ExtractFileName(SFile)].WorkSheets[1]; Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate; x := XLApp.ActiveCell.Row; y := XLApp.ActiveCell.Column; k:=1; //x := 2; //nomor baris excel repeat if tab.IsEmpty then no:=1 else if not tab.IsEmpty then begin tab.Last; no:=tab.Fields[0].AsInteger; no:=no+1; end; tab.Append; tab.Fields[0].AsInteger:=no; tab.Fields[1].AsString:='im'+IntToStr(no); Tgl:= XLApp.Cells.Item[k, 1].Value; //-- Format Tanggal Excel => 'mm/dd/YYYY //-- Ubah tanggal tg:= copy(Tgl,1,2); bl:= copy(Tgl,3,2); th:= copy(tgl,5,4); tgl:= th+'-'+bl+'-'+tg //-- Akhir Ubah Tanggal => YYYY-mm-dd //Bila Posisi Tanggalnya tidak diketahui, mending di lakukan pengecekan dulu, apakah itu format tanggal atau bukan. Dan Buatkan Fungsi tersendiri untuk mengecek dan mengubahnya. //-- Untuk Format ke databasenya tinggal atur aja dgn melihat format input tanggal pada Databasenya, contoh ini aku gunakan bila kita menggunakan MySQL tab.FieldByName('tanggal').AsString:=tgl; //XLApp.Cells.Item[k, 1].Value; ----> Nah ini nih yg bikin masalah tab.FieldByName('NN1').AsString:= XLApp.Cells.Item[k, 2].Value; tab.FieldByName('no_faktur').AsString:= XLApp.Cells.Item[k, 3].Value; tab.FieldByName('nama_customer').AsString:= XLApp.Cells.Item[k, 4].Value; tab.FieldByName('kota').AsString:= XLApp.Cells.Item[k, 5].Value; tab.FieldByName('bags').AsString:= XLApp.Cells.Item[k, 6].Value; tab.FieldByName('nama_barang').AsString:= XLApp.Cells.Item[k, 7].Value; tab.FieldByName('berat').AsString:= XLApp.Cells.Item[k, 8].Value; tab.FieldByName('jumlah_harga').AsString:= XLApp.Cells.Item[k, 9].Value; tab.FieldByName('NN3').AsString:= XLApp.Cells.Item[k, 10].Value; tab.FieldByName('NN4').AsString:= XLApp.Cells.Item[k, 11].Value; tab.FieldByName('harga_satuan').AsString:= XLApp.Cells.Item[k, 12].Value; tab.Post; k:=k+1; until XLApp.Cells.Item[k, 1].Value=''; ShowMessage('File telah terimport.'); 1: XLApp.Workbooks.Close; finally if not VarIsEmpty(XLApp) then begin XLApp.Workbooks.Close; XLApp.Quit; XLAPP := Unassigned; Sheet := Unassigned; Result := True; end; end; end;
Semoga membantu
user image
more 15 years ago

Wong_Jowo

@msih_bljaran: NB : Source yg ane kasih tanda panah tuh udah pernah coba jadi AsDateTime --> tab.FieldByName('tanggal').AsDateTime=XLApp. ......... bla bla
yang tebel itu menjadi lebih singkat menjadi formatdatetime('yyyy-mm-dd', tab.fieldbyname('tanggal').AsDateTime) := XLapp. ...............bla bla bla
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com