Mr. Kid,

Maaf mau tanya setelah point B.2 itu mengenai ini :  --- disini, lakukan
close connection dulu, lalu open connection lagi ---

Apakah ini maksud nya supaya hasil Create Table nya terlihat dulu ? Terima
kasih sebelumnya.

wassalam


*gnl-excelinfo.blogspot.co.id <http://gnl-excelinfo.blogspot.co.id>*

2018-02-19 10:36 GMT+07:00 'Mr. Kid' mr.nm...@gmail.com [belajar-excel] <
belajar-excel@yahoogroups.com>:

>
>
> Wa'alaikumussalam wr wb
> Mas Zainul,
>
> Query ke excel files tidak bisa melakukan delete from (dml).
> Untungnya, ddl query :
> 1. drop table bisa membuang seluruh definisi table.
> 2. create table bisa membuat tabel pada existing sheet..
>
> Syarat dan ketentuan :
> 1. hasil drop table bukan membuang sheet, tetapi membuang isi sheet
> 2. Efek dari drop table yang akan menghasilkan sheet kosong (tanpa kolom
> dan records apapun) tampak jika koneksi sudah di-close.
> 3. hasil dari crate table adalah menulis header pada baris 1 sheet tanpa
> mempedulikan baris setelahnya
> 4. Efek dari create table yang akan menghasilkan sheet berisi header
> tampak jika koneksi sudah di-close
>
> Jadi, pada koneksi ke Excel files, urutan proses yang setara dengan
> kemampuan delete from adalah sebagai berikut :
> A. Syarat dan Ketentuan :
>     > sediakan sebuah sheet kosong sejak dari desain.
>        * contoh : file xldb.xlsx sebagai wadah penyimpan data, berisi
> sheet :
>                        SALES : untuk wadah data transaksi sales
>                        PRODUK : untuk wadah data referensi produk (daftar
> produk)
>                dan  dbTmp : sebagai sheet kosong temporary untuk proses
> setara delete from
>
> B. Proses yang setara delete from
>     > koneksi ke file data (misal ke file xldb.xlsx)
>     > memanfaatkan object connection yang ada, dilakukan Execute pada
> queries dengan urutan proses berikut :
>         1. drop table sheet temporary
>               * Contoh : DROP TABLE [dbTmp$]
>         2. create table di sheet temporary, dengan kolom sebanyak yang
> diproses
>               * Contoh : sheet PRODUK memiliki 2 kolom, yaitu IDPRODUK
> bertipe numerik dan NMPRODUK bertipe text
>                                CREATE TABLE [dbTmp$] ( [IDPRODUK] Long,
> [NMPRODUK] char(255) )
>               * biasanya, semua kolom di set char(255) pun tiak mengapa,
> karena pada query insert into maupun update, datatype nilai yang ditulis
> mengikuti datatype sumber datanya
>               * penggunaan kurung siku ( [ dan ] ) sebagai antisipasi
> error, karena nama kolom maupun tabel terkadang menggunakan spasi atau
> karakter lain yang kurang layak.
>               * jika ada karakter titik pada nama kolom atau nama tabel,
> ganti dengan karakter #
>                 sebaiknya penggunaan karakter selain [A-Z] [0-9] dan
> underscore dihindari saja lah
>        --- disini, lakukan close connection dulu, lalu open connection
> lagi ---
>         3. insert into sheet temporary dari sheet data yang akan diproses
>            * Contoh : sheet PRODUK selain IDPRODUK bernilai < 10 akan
> dibuang, maka pindahkan record IDPRODUK >=10 ke sheet temporary
>                             INSERT INTO [dbTmp$] SELECT * FROM [PRODUK$]
> WHERE [IDPRODUK]>=10
>         4. drop tabel yang diproses
>            * contoh : DROP TABLE [PRODUK$]
>         5. create table yang diproses
>            * contoh : CREATE TABLE [PRODUK$] ( [IDPRODUK] Long, [NMPRODUK]
> char(255) )
>        --- disini, lakukan close connection dulu, lalu open connection
> lagi ---
>         6. insert into tabel yang diproses dari sheet temporary
>             * contoh : INSERT INTO [PRODUK$] SELECT * FROM [dbTmp$]
>         (optional) 7. drop sheet temporary supaya file size bisa terjaga
> sebesar isi yang ada saja (barang tak terpakai sudah dibuang)
>              * contoh : DROP TABLE [dbTmp$]
>        --- close connection dan selesai ---
>
> Peringatan :
> > Saat proses close connection dan open connection lagi yang ada setelah
> proses nomor 2 dan 5, bisa jadi akan memberi kesempatan pada user lain
> untuk membuka koneksi yang menyebabkan proses menjadi gagal. Jadi,
> sebaiknya :
>     1. koneksi data yang hanya berisi proses read, diset agar connection
> string menyakatan Mode=Read;ReadOnly=1
>     2. koneksi data yang mengubah isi (update, insert into) termasuk
> proses di atas TIDAK di-set Mode apapun.
> > Sebaiknya proses seperti ini digunakan untuk proses akhir.
>     Contoh :
>          User meng-edit (tambah, ubah, hapus records) di interface :
>          1. proses tambah -> execute query insert into
>          2. proses ubah -> execute query update dengan set di record
> tersebut apa adanya yang diisi user di interface
>          3. proses hapus -> execute query update dengan set seluruh kolom
> di record tersebut dengan '' (nullstring) atau NULL (tanpa petik)
>          Ketika user akan keluar dari interface, lakukan proses setara
> DELETE FROM di atas, dengan proses nomor 3 bagian WHERE nilai sebuah kolom
> yang <>'' seperti :
>                   INSERT INTO [dbTmp$] SELECT * FROM [PRODUK$] WHERE
> [IDPRODUK]<>''
>
> Kira-kira demikianlah...
> Detilnya, sila dicoba sendiri dulu ya, nanti ditanyakan lagi beserta hasil
> ujicobanya..
> dah bengkak jarinya mencetin layar kecil segini..
> lama juga ngetik segitu banyak.. (lumayan buat hiburan, daripada ndengerin
> client ribut mbahas batasan datanya sendiri... wkwkwkwk... lempar bolanya,
> ributlah mereka)
>
> Wassalamu'alaikum wr wb
> Kid
> Sent from my smart enough phone
>
> On Feb 18, 2018, at 21:22, Zainul Ulum zainul_u...@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com> wrote:
>
>
>
> Assalaamu'alaikum Wr. Wb.
> Dear Be-Excelers,
>
> Terlampir adalah class yang berisi code connection ke excel dengan
> menggunakan connection string adodb.
>
> Salah fungsi dalam class tersebut adalah :
>
> UpdateRecordFromDimensionalArray
> input : dimArray As Variant, sTableInDatabase As String, sKeyFld As
> String, cKey As Integer
> ouput: TRUE jika berhasil update dan FALSE jika tidak berhasil update
>
> Program berjalan dengan baik untuk SQL "INSERT"
> objConnection.Execute sSQL_INSERT, objRecordset, adCmdText
>
> Tetapi tidak berjalan sesuai harapan untuk SQL "DELETE"
> objConnection.Execute sSQL_DELETE, objRecordset, adCmdText
>
> Mohon pencerahannya,
> Wassalaamu'alaikum Wr. Wb,
>
> -zainul
>
> <clsDbXls.cls>
>
>
> 
>

Kirim email ke