Mas Zainul,
Sepertinya kalau pakai Access, langsung Execute query saja.
Saya tahunya, produk MS yang punya Stored Procedure adalah MS SQL Server.
Metode dalam SP yang menggunakan Bulk Insert dari text file (supaya cepat
untuk data yang banyak) membutuhkan sharing folder disisi server.
Jadi, client (user) melakukan save text file ke komputer server.

Wassalam,
Kid


2017-12-22 15:53 GMT+07:00 Zainul Ulum zainul_u...@yahoo.com
[belajar-excel] <belajar-excel@yahoogroups.com>:

>
>
> Maturnuwun Mas Kid,
> Penjelasannya Padat dan jelas.
>
> Sepertinga saya akan menggunakan back end berupa access database (accdb)
> dengan stored procedure.
> belum mempertimbangkan ke MySQL atau yang lain karena IT admin tidak
> mengijinkan saya untuk install program baru
>
> Thanks,
> -zainul
>
> #dikirim_pakai_mail.yahoo.com_tanpa_pulsa#
>
> --------------------------------------------
> On Wed, 20/12/17, 'Mr. Kid' mr.nm...@gmail.com [belajar-excel] <
> belajar-excel@yahoogroups.com> wrote:
>
> Subject: Re: [belajar-excel] Share Workbook yang ada excel table-nya
> To: "BeExcel" <belajar-excel@yahoogroups.com>
> Date: Wednesday, 20 December, 2017, 10:57 PM
>
>
>
>
>
>
>
>
>
>
>
>
> Wa'alaikumussalam
> wr wb
> mas Zainul,
>
> By design :
> Excel workbook ketika dibuka selalu
> berusaha untuk Exclusive (memberi hak write ke seorang user
> saja)
>
> Fitur shared workbook
> :Fitur ini berusaha untuk memberi hak
> Exclusive kepada lebih dari seorang user. Tetapi, fitur ini
> memberi batasan ketika ada lebih dari seorang user yang akan
> mengubah isi cells (sila lihat di menu Share Workbook tab
> Advanced bagian Conflicting blabla). Cells yang diubah bisa
> jadi masih kosong (blank cells) maupun sudah ada
> isinya.Artinya, shared workbook cukup beresiko
> untuk dimanfaatkan dalam proses penyimpanan data, karena
> diusahakan sebisa mungkin data yang disimpan dapat terjaga
> utuh. Sedangkan fitur ini memungkinkan terjadinya kondisi
> data yang benar (hasil input user A) akan terubah oleh data
> yang benar lainnya (hasil input user B), sehingga data akan
> kehilangan records yang benar.
> Aplikasi entri data
> :Pada umumnya, sistem data akan membentuk
> setidaknya 2 layer, yaitu : 1. Back end data; 2.
> Interface.Back end data bisa di text file, Excel
> file, database (direkomendasikan)
> Interface bisa berupa add in, xlsm
> atau xlsb file, desktop application lainnya, dan web base
> app (biasanya akan terbentuk 3 layer [three tier])
>
> Back end data dengan Text
> file dan Excel :Hak akses terhadap dua format
> file ini adalah Exclusive. Jadi, proses penulisan data ke
> back end harus dibuatkan sendiri
> antriannya.
> Back end data dengan database
> : (apapun database-nya, mulai dari MS Access, SQL
> Server, Oracle, MySQL, dsb yang berupa DBMS)Hak
> akses terhadap database adalah shared dengan management
> share write dan read yang sudah baik. Jadi tidak perlu repot
> membuatkan antrian proses penulisan data.
> Kasus Back End Data dengan Excel
> : (misal diatur)1. back end data dengan Excel
> bernama myData.xlsx (TIDAK shared workbook)
> 2. interface berupa add-in atau xlsm
> atau xlsb (direkomendasikan), TETAPI membuka back end
> myData.xlsx hanya sesuai keperluan saja, yaitu saat akan
> menulis data dan saat akan membaca data
> saja    * Open - write - save - close atau
> Open - read - close :: jangan sampai menunggu respon
> dari user, apalagi user langsung entri atau edit di
> myData.xlsx
>
> Prosedur antrian penulisan data bisa
> sebagai berikut :     'deklarasi variabel
> proses
>      dim wbkApp as
> workbook, rngInput as range, wbkDB as workbook, shtDT as
> worksheet
>
> 'init records di interface yang akan ditulis ke back
> end
>      set wbkAPP =
> thisworkbook     set
> rngInput=wbkapp.sheets("area input
> data").range("a2:c17")
>
>      'cek
> antrianCOBA_BUKA:      set
>
> wbkdb=workbooks.open( wbkapp.path &
> "\myData.xlsx" )      if
> wbkdb.readonly then
> wbkdb.close false            goto
> COBA_BUKA      endif
>       'proses tulis [kalau
> sampai di baris ini, berarti back end data telah menyerahkan
> hak write secara exclusive kepada wbkApp melalui
> wbkDB      set
> shtdt=wbkdb.sheets("DATA")    'misal nama
> sheet lokasi penulisan adalah 'DATA'
>
> rnginput.copy      shtdt.cells(
> shtdt.rows.count , "A"
> ).end(xlup).offset(1).pastespecial xlpastevalues
>       wbkdb.close true
> 'save n close wbkdb
>
>      'pesan selesai kepada
> user      msgbox
> "Selesai.",vbinformation,"Tulis ke
> xlDBFile"
>
> Catatan :
> Pada proses di atas, file
> myData.xlsx bisa berisi excel table, excel query table,
> excel pivot table, dan sebagainya. Tapi, penulisan data
> tetap di suatu range (jika range tepat dibawah Excel Table,
> maka Excel Table akan autoresize barisnya).
>
>
> Obrolan
> :Penggunaan database (dbms) sebagai back end
> sangat dianjurkan. Proses penulisan data bisa dengan banyak
> cara.
> Secara umum, urutan proses
> penulisan data adalah open connection - execute Insert atau
> Update query - Close connection
> Varian proses execute insert atau
> update query bisa jadi dengan set setiap nilai field lalu
> diakhir commit. Tapi saya kurang suka cara ini, terlalu
> banyak baris script-nya dan kurang cepat untuk penulisan
> records yang banyak sekaligus.
>
> Excel
> Table bisa dimanfaatkan untuk menyusun bunyi query insert
> atau update di sebuah kolom dalam Excel Table (kolom ini
> bisa di-hide). Lalu execute dilakukan dengan loop seluruh
> isi kolom tersebut.Untuk records yang sangat
> banyak, tentu hal ini akan memakan waktu dalam melakukan
> loop (BUKAN pada eksekusi query-nya).
> Data yang sangat banyak biasanya
> akan menggunakan DBMS yang besar, seperti SQL Server (edisi
> Express bisa 10GB tanpa trik, dan bisa dijadikan multi
> database jika data lebih dari 10GB).Dengan
> DBMS seperti SQL Server, akan ada lebih banyak opsi dalam
> penulisan data, mulai dari pass through query (saya kurang
> suka cara ini, karena terlalu lambat untuk ukuran kerja
> sebuah DBMS sekelas SQL Server), programming dengan Stored
> Precedure (SP), dan sebagainya.
>
> Input data di Excel, database
> di SQL Server, jumlah records cukup banyak (misal sekitar
> 200K records), dengan membuat SP di dalam database dan SP
> dieksekusi oleh Excel, maka proses penulisan data bisa cuma
> beberapa detik saja (relatif terhadap spesifikasi komputer
> ya). Sedangkan dengan loop execute query insert bisa sekitar
> 1 sampai 2 menit.
> Wassalamu'alaikum wr
> wbKid
>
>
> 2017-12-20 12:51 GMT+07:00
> zainul_u...@yahoo.com
> [belajar-excel] <belajar-excel@yahoogroups.com>:
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Dear Be-excel,Saya mulai thread dari
> jawaban Mas Kid mengenai shared workbook.
> Latar belakang:
> Saya membuat aplikasi vba excel
> dalam bentuk addin (extensi xlam) untuk otomatisasi sebuah
> file excel yang saya pakai sebagai database
> (excel-database). Pada file excel-database tersebut terdiri
> dari beberapa sheet yang berisi data berupa excel
> table.
> Seiring
> dengan perkembangan penambahan data tiap hari, saya
> berencana menge-set excel-database tersebut menjadi
> multi-user dengan setting shared workbook tetapi saat diset
> sebagai shared workbook, program excel menginformasikan
> bahwa tool shared workbook tidak bisa digunakan kalo
> terdapat object excel table dalam workbook.
> Pertanyaan / bahan
> diskusi:1.  Apakah ada cara lain agar bisa
> sharing workbook yang ada object excel table
> nya?2. Jika nomer #1 tidak bisa, saya berencana
> mengkonversi excel-database tersebut ke microsoft access
> (*.accdb) , tetapi proses input dan output tetap di
> excel.saya telah membuat vba code sederhana untuk
> connect ke access
> sbb:'=============================
> ========Option ExplicitConst
> sProvider As String =
> "Microsoft.ACE.OLEDB.12.0"Dim
> sConnString As StringDim cnn As
> ADODB.Connection
> Private Function
> CanConnectAccess(DbFile As String, rtnErr As String) As
> Boolean        sConnString =
> "Provider=" & sProvider & ";"
> & _        "Data Source=" &
> DbFile & ";" & _
> "Persist Security Info=False;"
>       'create a new connection to access
> database    CanConnectAccess =
> True    rtnErr = vbNullString
>       Set cnn = New
> ADODB.Connection    On Error Resume
> Next    cnn.Open sConnString    If
> Err..Number Then        rtnErr =
> Err.Description        CanConnectAccess =
> False        Err.Clear    End
> IfEnd
> Function'=============================
> =dari vba code di atas, bagian mana yang perlu
> dirubah agar database access bisa untuk multi
> user?
> Terimkasih
> banyak sebelumnya. Mohon maaf jika terlalu
> panjang.
> Wassalamu'alaikum wr
> wb.-zainul
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> #yiv3560235441 #yiv3560235441 --
> #yiv3560235441ygrp-mkp {
> border:1px solid #d8d8d8;font-family:Arial;margin:10px
> 0;padding:0 10px;}
>
> #yiv3560235441 #yiv3560235441ygrp-mkp hr {
> border:1px solid #d8d8d8;}
>
> #yiv3560235441 #yiv3560235441ygrp-mkp #yiv3560235441hd {
> color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px
> 0;}
>
> #yiv3560235441 #yiv3560235441ygrp-mkp #yiv3560235441ads {
> margin-bottom:10px;}
>
> #yiv3560235441 #yiv3560235441ygrp-mkp .yiv3560235441ad {
> padding:0 0;}
>
> #yiv3560235441 #yiv3560235441ygrp-mkp .yiv3560235441ad p {
> margin:0;}
>
> #yiv3560235441 #yiv3560235441ygrp-mkp .yiv3560235441ad a {
> color:#0000ff;text-decoration:none;}
> #yiv3560235441 #yiv3560235441ygrp-sponsor
> #yiv3560235441ygrp-lc {
> font-family:Arial;}
>
> #yiv3560235441 #yiv3560235441ygrp-sponsor
> #yiv3560235441ygrp-lc #yiv3560235441hd {
> margin:10px
> 0px;font-weight:700;font-size:78%;line-height:122%;}
>
> #yiv3560235441 #yiv3560235441ygrp-sponsor
> #yiv3560235441ygrp-lc .yiv3560235441ad {
> margin-bottom:10px;padding:0 0;}
>
> #yiv3560235441 #yiv3560235441actions {
> font-family:Verdana;font-size:11px;padding:10px 0;}
>
> #yiv3560235441 #yiv3560235441activity {
> background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;
> padding:10px;}
>
> #yiv3560235441 #yiv3560235441activity span {
> font-weight:700;}
>
> #yiv3560235441 #yiv3560235441activity span:first-child {
> text-transform:uppercase;}
>
> #yiv3560235441 #yiv3560235441activity span a {
> color:#5085b6;text-decoration:none;}
>
> #yiv3560235441 #yiv3560235441activity span span {
> color:#ff7900;}
>
> #yiv3560235441 #yiv3560235441activity span
> .yiv3560235441underline {
> text-decoration:underline;}
>
> #yiv3560235441 .yiv3560235441attach {
> clear:both;display:table;font-family:Arial;font-size:12px;padding:10px
> 0;width:400px;}
>
> #yiv3560235441 .yiv3560235441attach div a {
> text-decoration:none;}
>
> #yiv3560235441 .yiv3560235441attach img {
> border:none;padding-right:5px;}
>
> #yiv3560235441 .yiv3560235441attach label {
> display:block;margin-bottom:5px;}
>
> #yiv3560235441 .yiv3560235441attach label a {
> text-decoration:none;}
>
> #yiv3560235441 blockquote {
> margin:0 0 0 4px;}
>
> #yiv3560235441 .yiv3560235441bold {
> font-family:Arial;font-size:13px;font-weight:700;}
>
> #yiv3560235441 .yiv3560235441bold a {
> text-decoration:none;}
>
> #yiv3560235441 dd.yiv3560235441last p a {
> font-family:Verdana;font-weight:700;}
>
> #yiv3560235441 dd.yiv3560235441last p span {
> margin-right:10px;font-family:Verdana;font-weight:700;}
>
> #yiv3560235441 dd.yiv3560235441last p
> span.yiv3560235441yshortcuts {
> margin-right:0;}
>
> #yiv3560235441 div.yiv3560235441attach-table div div a {
> text-decoration:none;}
>
> #yiv3560235441 div.yiv3560235441attach-table {
> width:400px;}
>
> #yiv3560235441 div.yiv3560235441file-title a, #yiv3560235441
> div.yiv3560235441file-title a:active, #yiv3560235441
> div.yiv3560235441file-title a:hover, #yiv3560235441
> div.yiv3560235441file-title a:visited {
> text-decoration:none;}
>
> #yiv3560235441 div.yiv3560235441photo-title a,
> #yiv3560235441 div.yiv3560235441photo-title a:active,
> #yiv3560235441 div.yiv3560235441photo-title a:hover,
> #yiv3560235441 div.yiv3560235441photo-title a:visited {
> text-decoration:none;}
>
> #yiv3560235441 div#yiv3560235441ygrp-mlmsg
> #yiv3560235441ygrp-msg p a span.yiv3560235441yshortcuts {
> font-family:Verdana;font-size:10px;font-weight:normal;}
>
> #yiv3560235441 .yiv3560235441green {
> color:#628c2a;}
>
> #yiv3560235441 .yiv3560235441MsoNormal {
> margin:0 0 0 0;}
>
> #yiv3560235441 o {
> font-size:0;}
>
> #yiv3560235441 #yiv3560235441photos div {
> float:left;width:72px;}
>
> #yiv3560235441 #yiv3560235441photos div div {
> border:1px solid
> #666666;min-height:62px;overflow:hidden;width:62px;}
>
> #yiv3560235441 #yiv3560235441photos div label {
> color:#666666;font-size:10px;overflow:hidden;text-align:
> center;white-space:nowrap;width:64px;}
>
> #yiv3560235441 #yiv3560235441reco-category {
> font-size:77%;}
>
> #yiv3560235441 #yiv3560235441reco-desc {
> font-size:77%;}
>
> #yiv3560235441 .yiv3560235441replbq {
> margin:4px;}
>
> #yiv3560235441 #yiv3560235441ygrp-actbar div a:first-child {
> margin-right:2px;padding-right:5px;}
>
> #yiv3560235441 #yiv3560235441ygrp-mlmsg {
> font-size:13px;font-family:Arial, helvetica, clean,
> sans-serif;}
>
> #yiv3560235441 #yiv3560235441ygrp-mlmsg table {
> font-size:inherit;font:100%;}
>
> #yiv3560235441 #yiv3560235441ygrp-mlmsg select,
> #yiv3560235441 input, #yiv3560235441 textarea {
> font:99% Arial, Helvetica, clean, sans-serif;}
>
> #yiv3560235441 #yiv3560235441ygrp-mlmsg pre, #yiv3560235441
> code {
> font:115% monospace;}
>
> #yiv3560235441 #yiv3560235441ygrp-mlmsg * {
> line-height:1.22em;}
>
> #yiv3560235441 #yiv3560235441ygrp-mlmsg #yiv3560235441logo {
> padding-bottom:10px;}
>
>
> #yiv3560235441 #yiv3560235441ygrp-msg p a {
> font-family:Verdana;}
>
> #yiv3560235441 #yiv3560235441ygrp-msg
> p#yiv3560235441attach-count span {
> color:#1E66AE;font-weight:700;}
>
> #yiv3560235441 #yiv3560235441ygrp-reco
> #yiv3560235441reco-head {
> color:#ff7900;font-weight:700;}
>
> #yiv3560235441 #yiv3560235441ygrp-reco {
> margin-bottom:20px;padding:0px;}
>
> #yiv3560235441 #yiv3560235441ygrp-sponsor #yiv3560235441ov
> li a {
> font-size:130%;text-decoration:none;}
>
> #yiv3560235441 #yiv3560235441ygrp-sponsor #yiv3560235441ov
> li {
> font-size:77%;list-style-type:square;padding:6px 0;}
>
> #yiv3560235441 #yiv3560235441ygrp-sponsor #yiv3560235441ov
> ul {
> margin:0;padding:0 0 0 8px;}
>
> #yiv3560235441 #yiv3560235441ygrp-text {
> font-family:Georgia;}
>
> #yiv3560235441 #yiv3560235441ygrp-text p {
> margin:0 0 1em 0;}
>
> #yiv3560235441 #yiv3560235441ygrp-text tt {
> font-size:120%;}
>
> #yiv3560235441 #yiv3560235441ygrp-vital ul li:last-child {
> border-right:none !important;
> }
> #yiv3560235441
>
> 
>

Kirim email ke