Hai Heru,

Koneksi ke Ms Access adalah dengan provider jet oledb atau ace oledb atau 
dengan driver odbc untul Ms Access. Provider oledb tidak memiliki fungsi 
replace. Itu sebabnya koneksi dengan provider oledb yang query-nya berisi 
fungsi replace akan error, karena tidak ada fungsi tersebut dalam provider yg 
digunakan.

Ms Access memanfaatkan fungsi replace milik VBA (VBA for Access). Jadi, di 
dalam Ms Access sendiri, fungsi replace bisa digunakan dalam query. 

Dengan query berparameter yang dibuat dan disimpan dalam Ms Access yang berisi 
fungsi replace pun juga tidak memungkinkan digunakan dalam koneksi dari luar. 
(Tapi untuk yang satu ini, moga2 kliru. Moga2 abang2 yang master Access bisa 
membantu agar dugaan saya kliru.)

Jika di dalam Ms Access juga tidak dapat menggunakan fungsi replace milik VBA, 
maka bisa dibuatkan UDF dalam VBA nya berupa proses replace yang memanfaatkan 
fungsi replace milik VBA. UDF ini yang digunakan dalam query di dalam Ms Access.

Jadi ada beberapa opsi, yaitu :
1. Ganti fungsi replace dengan gabungan fungsi-fungsi lain, walau query nya 
bisa jadi panjang tidak karuan.
2. Jika datatype yang diproses adalah numerik, coba susun ekspresi berupa 
operasi matematis untuk me-replace.
3. Andai dugaan saya tentang query berisi replace dengan parameter adalah 
kliru, manfaatkan query berparameter.
4. Membuat UDF yang berisi fungsi replace di Ms Access, lalu buat query dan 
simpan di Ms Access, kemudian koneksi ke query tersebut. Untuk hal ini, akan 
dibuat query dalam Ms Access yang berparameter agar dinamis atau yang statis 
(tanpa parameter) bisa dimanfaatkan.
5. Daripada meng-update nilai item pokok, mungkin lebih baik membahkan kolom 
flag status terpakai atau tidak di tabel dalam Ms Access. Jadi query update 
untuk ubah flag disertai query insert into item baru yang dimaksudkan sebagai 
item yang akan aktif dipakai.

Wassalamu'alaikum wr wb
Kid

Sent from my smart enough phone

> On Oct 24, 2015, at 08:23, Heru Safrudin [email protected] [belajar-excel] 
> <[email protected]> wrote:
> 
> Kalo pake REPLACE Tetap error ;
> ' Undefined function 'REPLACE' in expression'
> 
> Padahal jika pake cara lain dibawah ini berhasil
> CON.Execute "update STOCK SET JOB=" & ganti & " & mid(JOB," & Len(ganti) + 1 
> & ") WHERE JOB LIKE '%3333%'"
> 
> Mohon penjelasannya
> 
> Terima kasih
> Wassalamu 'alaikum wr. wb.,
> 
> Heru Safrudin
> 
> Pada 2015 10 23 15:12, "'Mr. Kid' [email protected] [belajar-excel]" 
> <[email protected]> menulis:
>>  
>> Coba alamat lengkap databasenya ditulis dengan baik.
>> Bila object koneksi adalah mengkoneksi database tersebut, maka bisa tidak 
>> perlu menyebut nama databasenya.
>> 
>> 
>> 
>> 2015-10-23 14:30 GMT+07:00 Heru Safrudin [email protected] 
>> [belajar-excel] <[email protected]>:
>>>  
>>> Terima kasih atas ilmu yg sangat bermanfaat dari Mr... 
>>> Sekarang bagaimana cara mengubah sebagian teks dalam database sbb:
>>> 
>>> CON.Execute "update `coba.MDB`.STOCK SET JOB=REPLACE(JOB,'2222','3333') 
>>> WHERE JOB='11112222'"
>>> 
>>> Maaf contoh diatas kok tidak bisa jalan 
>>> Mohon pencerahannya
>>> 
>>> Terima kasih
>>> 
>>> Wassalamu 'alaikum wr. wb.,
>>> 
>>> Heru Safrudin
>>> 
> 
> 

Kirim email ke