Yup

Sent from my smart enough phone

> On Feb 23, 2018, at 10:15, Sony Ario sony.ar...@gmail.com [belajar-excel] 
> <belajar-excel@yahoogroups.com> wrote:
> 
> 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
> 
> 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